{
 "cells": [
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "# 分析运行较慢或有异常的zq_normal实例",
   "id": "902bf19ea5975e8a"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "## 1. 个别模型无法编译通过",
   "id": "a3ee680f28ee93cd"
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-15T05:28:15.506326Z",
     "start_time": "2024-05-15T05:28:15.457318Z"
    }
   },
   "cell_type": "code",
   "source": [
    "import math\n",
    "import os\n",
    "\n",
    "os.chdir(r'D:\\pyProject\\dymola_test\\dymola_test')  # 设置为项目根目录\n",
    "from dataclasses import dataclass\n",
    "import numpy as np\n",
    "from simulation_analysis.performance_comparison import get_dymola_res, get_zq_res, find_common_models\n",
    "from dymola_res_parser import parse_dymola_results, DymolaResult\n",
    "from zq_res_parser import parse_zq_results, ZQResult\n",
    "\n",
    "model_txt_path = \"models.txt\"\n",
    "with open(model_txt_path, \"r\") as f:\n",
    "    model_list = f.readlines()\n",
    "analyzed_dir_path = \"500-500\"\n",
    "dymola_directory = analyzed_dir_path + \"/dymola_res\"\n",
    "zq_directory = analyzed_dir_path + \"/zq_res\"\n",
    "zq_n_directory = analyzed_dir_path + \"/zq_n_res\"\n",
    "common_models = find_common_models(dymola_directory, zq_directory)\n",
    "print(\"都能编译通过的模型数量：\", len(common_models))\n",
    "dymola_results = get_dymola_res(dymola_directory, common_models)\n",
    "zq_results = get_zq_res(zq_directory, common_models)\n",
    "zq_n_results = get_zq_res(zq_n_directory, common_models)"
   ],
   "id": "6fbd218631341d2",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "都能编译通过的模型数量： 89\n"
     ]
    }
   ],
   "execution_count": 6
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-15T05:33:09.753158Z",
     "start_time": "2024-05-15T05:32:57.794478Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 创建两个集合来存储模型名称\n",
    "zq_models = {result.model_name for result in zq_results}\n",
    "zq_n_models = {result.model_name for result in zq_n_results}\n",
    "\n",
    "# 找出在zq_results中但不在zq_n_results中的模型\n",
    "missing_models = zq_models - zq_n_models\n",
    "\n",
    "# 打印缺失的模型名称\n",
    "print(\"normal模型相较于one step，无法顺序执行完成的模型如下：\")\n",
    "for model in missing_models:\n",
    "    print(model)"
   ],
   "id": "b24f4722913ff054",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "normal模型相较于one step，无法顺序执行完成的模型如下：\n",
      "Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar1\n",
      "Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.BevelGear1D\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.ThreeSprings\n",
      "Modelica.Mechanics.MultiBody.Examples.Constraints.UniversalConstraint\n"
     ]
    }
   ],
   "execution_count": 9
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "## 2. 个别模型运行时间较长\n",
    "# 找出运行时间较长的模型，首先是normal模式比one step模式运行时间长的模型"
   ],
   "id": "b24ab64d5c288870"
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-15T05:59:12.269135Z",
     "start_time": "2024-05-15T05:59:12.256133Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 假设 dymola_results, zq_results, zq_n_results 是包含对应结果对象的列表\n",
    "\n",
    "# 将结果转换为字典，以便通过模型名称快速访问\n",
    "dymola_dict = {result.model_name: result.cpu_time_integration for result in dymola_results}\n",
    "zq_dict = {result.model_name: result.time_jmi_ode_cvode_solve for result in zq_results}\n",
    "zq_n_dict = {result.model_name: result.time_jmi_ode_cvode_solve for result in zq_n_results}\n",
    "\n",
    "# 找出normal模式比dymola慢的模型\n",
    "slower_than_dymola = []\n",
    "for model_name, zq_time in zq_dict.items():\n",
    "    if model_name in dymola_dict and zq_time > dymola_dict[model_name]:\n",
    "        slower_than_dymola.append(model_name)\n",
    "\n",
    "# 找出normal模式比onestep慢的模型\n",
    "slower_than_onestep = []\n",
    "for model_name, zq_time in zq_dict.items():\n",
    "    if model_name in zq_n_dict and zq_time > zq_n_dict[model_name]:\n",
    "        slower_than_onestep.append(model_name)\n",
    "\n",
    "# 打印并保存比dymola慢的模型\n",
    "print(\"Normal模式比Dymola慢的模型有：\")\n",
    "for model in slower_than_dymola:\n",
    "    print(model)\n",
    "\n",
    "with open(\"slower_than_dymola_models.txt\", \"w\") as f:\n",
    "    for model in slower_than_dymola:\n",
    "        f.write(model + \"\\n\")\n",
    "\n",
    "# 打印并保存比onestep慢的模型\n",
    "print(\"Normal模式比Onestep慢的模型有：\")\n",
    "for model in slower_than_onestep:\n",
    "    print(model)\n",
    "\n",
    "with open(\"slower_than_onestep_models.txt\", \"w\") as f:\n",
    "    for model in slower_than_onestep:\n",
    "        f.write(model + \"\\n\")\n"
   ],
   "id": "a7a80fee1cb9772f",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Normal模式比Dymola慢的模型有：\n",
      "Modelica.Mechanics.MultiBody.Examples.Loops.PlanarLoops_analytic\n",
      "Modelica.Magnetic.FluxTubes.Examples.Hysteresis.ThreePhaseTransformerWithRectifier\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulumInitTip\n",
      "Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar2\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.LineForceWithTwoMasses\n",
      "Modelica.Mechanics.Rotational.Examples.LossyGearDemo1\n",
      "Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ArmatureStroke\n",
      "Modelica.Blocks.Examples.PID_Controller\n",
      "Modelica.Fluid.Examples.HeatingSystem\n",
      "Modelica.Media.Examples.R134a.R134a2\n",
      "Modelica.Mechanics.Rotational.Examples.First\n",
      "Modelica.Media.Examples.R134a.R134a1\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheelSetDriving\n",
      "Modelica.Mechanics.Rotational.Examples.CoupledClutches\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.ForceAndTorque\n",
      "Modelica.Media.Examples.MixtureGases\n",
      "Modelica.Mechanics.MultiBody.Examples.Constraints.RevoluteConstraint\n",
      "Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6_analytic\n",
      "Modelica.Mechanics.MultiBody.Examples.Constraints.PrismaticConstraint\n",
      "Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar_analytic\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulum\n",
      "Modelica.Mechanics.Rotational.Examples.FirstGrounded\n",
      "Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.MovingActuatedDrive\n",
      "Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar1\n",
      "Modelica.Magnetic.FluxTubes.Examples.Hysteresis.InductorWithHysteresis\n",
      "Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.ActuatedDrive\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.PendulumWithSpringDamper\n",
      "Modelica.Magnetic.FluxTubes.Examples.Hysteresis.SinglePhaseTransformerWithHysteresis2\n",
      "Modelica.Mechanics.Rotational.Examples.Friction\n",
      "Modelica.Blocks.Examples.InverseModel\n",
      "Modelica.Magnetic.FundamentalWave.Examples.Components.EddyCurrentLosses\n",
      "Modelica.Mechanics.Translational.Examples.ElastoGap\n",
      "Normal模式比Onestep慢的模型有：\n",
      "Modelica.Mechanics.MultiBody.Examples.Loops.PlanarLoops_analytic\n",
      "Modelica.Magnetic.FluxTubes.Examples.Hysteresis.ThreePhaseTransformerWithRectifier\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulumInitTip\n",
      "Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar2\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.FreeBody\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.LineForceWithTwoMasses\n",
      "Modelica.Mechanics.Rotational.Examples.LossyGearDemo1\n",
      "Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ArmatureStroke\n",
      "Modelica.Blocks.Examples.PID_Controller\n",
      "Modelica.Mechanics.MultiBody.Examples.Loops.Engine1a\n",
      "Modelica.Blocks.Examples.RealNetwork1\n",
      "Modelica.Mechanics.Translational.Examples.Sensors\n",
      "Modelica.Mechanics.Rotational.Examples.First\n",
      "Modelica.Mechanics.Translational.Examples.PreLoad\n",
      "Modelica.Media.Examples.R134a.R134a1\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheelSetDriving\n",
      "Modelica.StateGraph.Examples.ExecutionPaths\n",
      "Modelica.Mechanics.Rotational.Examples.CoupledClutches\n",
      "Modelica.Media.Examples.MixtureGases\n",
      "Modelica.Media.Examples.ReferenceAir.DryAir2\n",
      "Modelica.StateGraph.Examples.FirstExample_Variant2\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.SpringWithMass\n",
      "Modelica.Mechanics.MultiBody.Examples.Constraints.RevoluteConstraint\n",
      "Modelica.Mechanics.Translational.Examples.Accelerate\n",
      "Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6_analytic\n",
      "Modelica.Mechanics.Rotational.Examples.ElasticBearing\n",
      "Modelica.Mechanics.MultiBody.Examples.Constraints.PrismaticConstraint\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheel\n",
      "Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar_analytic\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulum\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.Surfaces\n",
      "Modelica.Mechanics.Rotational.Examples.FirstGrounded\n",
      "Modelica.Mechanics.Rotational.Examples.GenerationOfFMUs\n",
      "Modelica.Mechanics.Rotational.Examples.RollingWheel\n",
      "Modelica.Magnetic.FluxTubes.Examples.Hysteresis.InductorWithHysteresis\n",
      "Modelica.Media.Examples.ReferenceAir.Inverse_sh_T\n",
      "Modelica.Mechanics.Rotational.Examples.Backlash\n",
      "Modelica.Mechanics.MultiBody.Examples.Elementary.PendulumWithSpringDamper\n",
      "Modelica.Mechanics.Rotational.Examples.HeatLosses\n",
      "Modelica.Blocks.Examples.InverseModel\n",
      "Modelica.Magnetic.FundamentalWave.Examples.Components.EddyCurrentLosses\n",
      "Modelica.Media.Examples.ReferenceAir.DryAir1\n",
      "Modelica.Magnetic.FundamentalWave.Examples.Components.SinglePhaseInductance\n",
      "Modelica.Mechanics.Translational.Examples.Oscillator\n"
     ]
    }
   ],
   "execution_count": 17
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "## 2.1 对比normal模式，比dymola运行慢的模型，具体时间如下",
   "id": "6665446abffc77b3"
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-15T06:17:04.546085Z",
     "start_time": "2024-05-15T06:17:04.529461Z"
    }
   },
   "cell_type": "code",
   "source": [
    "import pandas as pd\n",
    "\n",
    "# 假设 slower_than_dymola 是之前得到的比Dymola慢的模型名称列表\n",
    "# 这里我们需要从三个字典中获取对应的运行时间数据\n",
    "data = []\n",
    "for model_name in slower_than_dymola:\n",
    "    normal_time = zq_dict.get(model_name, float('nan'))\n",
    "    dymola_time = dymola_dict.get(model_name, float('nan'))\n",
    "    onestep_time = zq_n_dict.get(model_name, float('nan'))\n",
    "    data.append([model_name, normal_time, dymola_time, onestep_time])\n",
    "\n",
    "# 转换为 DataFrame\n",
    "df = pd.DataFrame(data, columns=[\"模型名称\", \"Normal 运行时间 (s)\", \"Dymola 运行时间 (s)\", \"Onestep 运行时间 (s)\"])\n",
    "\n",
    "# 使用 style 来美化显示\n",
    "def highlight_col(x):\n",
    "    # 高亮显示最大值\n",
    "    return ['background-color: yellow' if v == x.max() else '' for v in x]\n",
    "\n",
    "# 显示更新后的 DataFrame\n",
    "styled_df = df.style.apply(highlight_col, subset=[\"Normal 运行时间 (s)\", \"Dymola 运行时间 (s)\", \"Onestep 运行时间 (s)\"], axis=1)\n",
    "styled_df = styled_df.set_properties(**{'text-align': 'center'})\n",
    "styled_df.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])\n",
    "\n",
    "styled_df\n"
   ],
   "id": "c1e30ccc9f0ce7c5",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x216230164a0>"
      ],
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_ed3b4 th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_ed3b4_row0_col0, #T_ed3b4_row0_col2, #T_ed3b4_row0_col3, #T_ed3b4_row1_col0, #T_ed3b4_row1_col2, #T_ed3b4_row1_col3, #T_ed3b4_row2_col0, #T_ed3b4_row2_col2, #T_ed3b4_row2_col3, #T_ed3b4_row3_col0, #T_ed3b4_row3_col2, #T_ed3b4_row3_col3, #T_ed3b4_row4_col0, #T_ed3b4_row4_col2, #T_ed3b4_row4_col3, #T_ed3b4_row5_col0, #T_ed3b4_row5_col2, #T_ed3b4_row5_col3, #T_ed3b4_row6_col0, #T_ed3b4_row6_col2, #T_ed3b4_row6_col3, #T_ed3b4_row7_col0, #T_ed3b4_row7_col2, #T_ed3b4_row7_col3, #T_ed3b4_row8_col0, #T_ed3b4_row8_col1, #T_ed3b4_row8_col2, #T_ed3b4_row9_col0, #T_ed3b4_row9_col1, #T_ed3b4_row9_col2, #T_ed3b4_row10_col0, #T_ed3b4_row10_col2, #T_ed3b4_row10_col3, #T_ed3b4_row11_col0, #T_ed3b4_row11_col2, #T_ed3b4_row11_col3, #T_ed3b4_row12_col0, #T_ed3b4_row12_col2, #T_ed3b4_row12_col3, #T_ed3b4_row13_col0, #T_ed3b4_row13_col2, #T_ed3b4_row13_col3, #T_ed3b4_row14_col0, #T_ed3b4_row14_col1, #T_ed3b4_row14_col2, #T_ed3b4_row15_col0, #T_ed3b4_row15_col2, #T_ed3b4_row15_col3, #T_ed3b4_row16_col0, #T_ed3b4_row16_col2, #T_ed3b4_row16_col3, #T_ed3b4_row17_col0, #T_ed3b4_row17_col2, #T_ed3b4_row17_col3, #T_ed3b4_row18_col0, #T_ed3b4_row18_col2, #T_ed3b4_row18_col3, #T_ed3b4_row19_col0, #T_ed3b4_row19_col2, #T_ed3b4_row19_col3, #T_ed3b4_row20_col0, #T_ed3b4_row20_col2, #T_ed3b4_row20_col3, #T_ed3b4_row21_col0, #T_ed3b4_row21_col2, #T_ed3b4_row21_col3, #T_ed3b4_row22_col0, #T_ed3b4_row22_col1, #T_ed3b4_row22_col2, #T_ed3b4_row23_col0, #T_ed3b4_row23_col2, #T_ed3b4_row23_col3, #T_ed3b4_row24_col0, #T_ed3b4_row24_col2, #T_ed3b4_row24_col3, #T_ed3b4_row25_col0, #T_ed3b4_row25_col2, #T_ed3b4_row26_col0, #T_ed3b4_row26_col2, #T_ed3b4_row26_col3, #T_ed3b4_row27_col0, #T_ed3b4_row27_col1, #T_ed3b4_row27_col2, #T_ed3b4_row28_col0, #T_ed3b4_row28_col1, #T_ed3b4_row28_col2, #T_ed3b4_row29_col0, #T_ed3b4_row29_col2, #T_ed3b4_row29_col3, #T_ed3b4_row30_col0, #T_ed3b4_row30_col2, #T_ed3b4_row30_col3, #T_ed3b4_row31_col0, #T_ed3b4_row31_col1, #T_ed3b4_row31_col2 {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_ed3b4_row0_col1, #T_ed3b4_row1_col1, #T_ed3b4_row2_col1, #T_ed3b4_row3_col1, #T_ed3b4_row4_col1, #T_ed3b4_row5_col1, #T_ed3b4_row6_col1, #T_ed3b4_row7_col1, #T_ed3b4_row8_col3, #T_ed3b4_row9_col3, #T_ed3b4_row10_col1, #T_ed3b4_row11_col1, #T_ed3b4_row12_col1, #T_ed3b4_row13_col1, #T_ed3b4_row14_col3, #T_ed3b4_row15_col1, #T_ed3b4_row16_col1, #T_ed3b4_row17_col1, #T_ed3b4_row18_col1, #T_ed3b4_row19_col1, #T_ed3b4_row20_col1, #T_ed3b4_row21_col1, #T_ed3b4_row22_col3, #T_ed3b4_row23_col1, #T_ed3b4_row24_col1, #T_ed3b4_row25_col1, #T_ed3b4_row25_col3, #T_ed3b4_row26_col1, #T_ed3b4_row27_col3, #T_ed3b4_row28_col3, #T_ed3b4_row29_col1, #T_ed3b4_row30_col1, #T_ed3b4_row31_col3 {\n",
       "  background-color: yellow;\n",
       "  text-align: center;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_ed3b4\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_ed3b4_level0_col0\" class=\"col_heading level0 col0\" >模型名称</th>\n",
       "      <th id=\"T_ed3b4_level0_col1\" class=\"col_heading level0 col1\" >Normal 运行时间 (s)</th>\n",
       "      <th id=\"T_ed3b4_level0_col2\" class=\"col_heading level0 col2\" >Dymola 运行时间 (s)</th>\n",
       "      <th id=\"T_ed3b4_level0_col3\" class=\"col_heading level0 col3\" >Onestep 运行时间 (s)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
       "      <td id=\"T_ed3b4_row0_col0\" class=\"data row0 col0\" >Modelica.Mechanics.MultiBody.Examples.Loops.PlanarLoops_analytic</td>\n",
       "      <td id=\"T_ed3b4_row0_col1\" class=\"data row0 col1\" >0.366000</td>\n",
       "      <td id=\"T_ed3b4_row0_col2\" class=\"data row0 col2\" >0.049000</td>\n",
       "      <td id=\"T_ed3b4_row0_col3\" class=\"data row0 col3\" >0.313000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
       "      <td id=\"T_ed3b4_row1_col0\" class=\"data row1 col0\" >Modelica.Magnetic.FluxTubes.Examples.Hysteresis.ThreePhaseTransformerWithRectifier</td>\n",
       "      <td id=\"T_ed3b4_row1_col1\" class=\"data row1 col1\" >1048.296000</td>\n",
       "      <td id=\"T_ed3b4_row1_col2\" class=\"data row1 col2\" >336.542000</td>\n",
       "      <td id=\"T_ed3b4_row1_col3\" class=\"data row1 col3\" >789.614000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
       "      <td id=\"T_ed3b4_row2_col0\" class=\"data row2 col0\" >Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulumInitTip</td>\n",
       "      <td id=\"T_ed3b4_row2_col1\" class=\"data row2 col1\" >0.041000</td>\n",
       "      <td id=\"T_ed3b4_row2_col2\" class=\"data row2 col2\" >0.029000</td>\n",
       "      <td id=\"T_ed3b4_row2_col3\" class=\"data row2 col3\" >0.034000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
       "      <td id=\"T_ed3b4_row3_col0\" class=\"data row3 col0\" >Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar2</td>\n",
       "      <td id=\"T_ed3b4_row3_col1\" class=\"data row3 col1\" >0.092000</td>\n",
       "      <td id=\"T_ed3b4_row3_col2\" class=\"data row3 col2\" >0.032000</td>\n",
       "      <td id=\"T_ed3b4_row3_col3\" class=\"data row3 col3\" >0.046000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
       "      <td id=\"T_ed3b4_row4_col0\" class=\"data row4 col0\" >Modelica.Mechanics.MultiBody.Examples.Elementary.LineForceWithTwoMasses</td>\n",
       "      <td id=\"T_ed3b4_row4_col1\" class=\"data row4 col1\" >0.045000</td>\n",
       "      <td id=\"T_ed3b4_row4_col2\" class=\"data row4 col2\" >0.020000</td>\n",
       "      <td id=\"T_ed3b4_row4_col3\" class=\"data row4 col3\" >0.025000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row5\" class=\"row_heading level0 row5\" >5</th>\n",
       "      <td id=\"T_ed3b4_row5_col0\" class=\"data row5 col0\" >Modelica.Mechanics.Rotational.Examples.LossyGearDemo1</td>\n",
       "      <td id=\"T_ed3b4_row5_col1\" class=\"data row5 col1\" >0.039000</td>\n",
       "      <td id=\"T_ed3b4_row5_col2\" class=\"data row5 col2\" >0.029000</td>\n",
       "      <td id=\"T_ed3b4_row5_col3\" class=\"data row5 col3\" >0.032000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row6\" class=\"row_heading level0 row6\" >6</th>\n",
       "      <td id=\"T_ed3b4_row6_col0\" class=\"data row6 col0\" >Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ArmatureStroke</td>\n",
       "      <td id=\"T_ed3b4_row6_col1\" class=\"data row6 col1\" >0.008000</td>\n",
       "      <td id=\"T_ed3b4_row6_col2\" class=\"data row6 col2\" >0.005000</td>\n",
       "      <td id=\"T_ed3b4_row6_col3\" class=\"data row6 col3\" >0.001000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row7\" class=\"row_heading level0 row7\" >7</th>\n",
       "      <td id=\"T_ed3b4_row7_col0\" class=\"data row7 col0\" >Modelica.Blocks.Examples.PID_Controller</td>\n",
       "      <td id=\"T_ed3b4_row7_col1\" class=\"data row7 col1\" >0.002000</td>\n",
       "      <td id=\"T_ed3b4_row7_col2\" class=\"data row7 col2\" >0.001000</td>\n",
       "      <td id=\"T_ed3b4_row7_col3\" class=\"data row7 col3\" >0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row8\" class=\"row_heading level0 row8\" >8</th>\n",
       "      <td id=\"T_ed3b4_row8_col0\" class=\"data row8 col0\" >Modelica.Fluid.Examples.HeatingSystem</td>\n",
       "      <td id=\"T_ed3b4_row8_col1\" class=\"data row8 col1\" >0.121000</td>\n",
       "      <td id=\"T_ed3b4_row8_col2\" class=\"data row8 col2\" >0.011000</td>\n",
       "      <td id=\"T_ed3b4_row8_col3\" class=\"data row8 col3\" >0.140000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row9\" class=\"row_heading level0 row9\" >9</th>\n",
       "      <td id=\"T_ed3b4_row9_col0\" class=\"data row9 col0\" >Modelica.Media.Examples.R134a.R134a2</td>\n",
       "      <td id=\"T_ed3b4_row9_col1\" class=\"data row9 col1\" >2.285000</td>\n",
       "      <td id=\"T_ed3b4_row9_col2\" class=\"data row9 col2\" >0.599000</td>\n",
       "      <td id=\"T_ed3b4_row9_col3\" class=\"data row9 col3\" >2.314000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row10\" class=\"row_heading level0 row10\" >10</th>\n",
       "      <td id=\"T_ed3b4_row10_col0\" class=\"data row10 col0\" >Modelica.Mechanics.Rotational.Examples.First</td>\n",
       "      <td id=\"T_ed3b4_row10_col1\" class=\"data row10 col1\" >0.050000</td>\n",
       "      <td id=\"T_ed3b4_row10_col2\" class=\"data row10 col2\" >0.036000</td>\n",
       "      <td id=\"T_ed3b4_row10_col3\" class=\"data row10 col3\" >0.042000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row11\" class=\"row_heading level0 row11\" >11</th>\n",
       "      <td id=\"T_ed3b4_row11_col0\" class=\"data row11 col0\" >Modelica.Media.Examples.R134a.R134a1</td>\n",
       "      <td id=\"T_ed3b4_row11_col1\" class=\"data row11 col1\" >1.062000</td>\n",
       "      <td id=\"T_ed3b4_row11_col2\" class=\"data row11 col2\" >0.303000</td>\n",
       "      <td id=\"T_ed3b4_row11_col3\" class=\"data row11 col3\" >0.877000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row12\" class=\"row_heading level0 row12\" >12</th>\n",
       "      <td id=\"T_ed3b4_row12_col0\" class=\"data row12 col0\" >Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheelSetDriving</td>\n",
       "      <td id=\"T_ed3b4_row12_col1\" class=\"data row12 col1\" >0.084000</td>\n",
       "      <td id=\"T_ed3b4_row12_col2\" class=\"data row12 col2\" >0.073000</td>\n",
       "      <td id=\"T_ed3b4_row12_col3\" class=\"data row12 col3\" >0.071000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row13\" class=\"row_heading level0 row13\" >13</th>\n",
       "      <td id=\"T_ed3b4_row13_col0\" class=\"data row13 col0\" >Modelica.Mechanics.Rotational.Examples.CoupledClutches</td>\n",
       "      <td id=\"T_ed3b4_row13_col1\" class=\"data row13 col1\" >0.277000</td>\n",
       "      <td id=\"T_ed3b4_row13_col2\" class=\"data row13 col2\" >0.200000</td>\n",
       "      <td id=\"T_ed3b4_row13_col3\" class=\"data row13 col3\" >0.187000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row14\" class=\"row_heading level0 row14\" >14</th>\n",
       "      <td id=\"T_ed3b4_row14_col0\" class=\"data row14 col0\" >Modelica.Mechanics.MultiBody.Examples.Elementary.ForceAndTorque</td>\n",
       "      <td id=\"T_ed3b4_row14_col1\" class=\"data row14 col1\" >1.041000</td>\n",
       "      <td id=\"T_ed3b4_row14_col2\" class=\"data row14 col2\" >0.989000</td>\n",
       "      <td id=\"T_ed3b4_row14_col3\" class=\"data row14 col3\" >1.190000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row15\" class=\"row_heading level0 row15\" >15</th>\n",
       "      <td id=\"T_ed3b4_row15_col0\" class=\"data row15 col0\" >Modelica.Media.Examples.MixtureGases</td>\n",
       "      <td id=\"T_ed3b4_row15_col1\" class=\"data row15 col1\" >0.032000</td>\n",
       "      <td id=\"T_ed3b4_row15_col2\" class=\"data row15 col2\" >0.016000</td>\n",
       "      <td id=\"T_ed3b4_row15_col3\" class=\"data row15 col3\" >0.027000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row16\" class=\"row_heading level0 row16\" >16</th>\n",
       "      <td id=\"T_ed3b4_row16_col0\" class=\"data row16 col0\" >Modelica.Mechanics.MultiBody.Examples.Constraints.RevoluteConstraint</td>\n",
       "      <td id=\"T_ed3b4_row16_col1\" class=\"data row16 col1\" >0.063000</td>\n",
       "      <td id=\"T_ed3b4_row16_col2\" class=\"data row16 col2\" >0.048000</td>\n",
       "      <td id=\"T_ed3b4_row16_col3\" class=\"data row16 col3\" >0.053000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row17\" class=\"row_heading level0 row17\" >17</th>\n",
       "      <td id=\"T_ed3b4_row17_col0\" class=\"data row17 col0\" >Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6_analytic</td>\n",
       "      <td id=\"T_ed3b4_row17_col1\" class=\"data row17 col1\" >158.696000</td>\n",
       "      <td id=\"T_ed3b4_row17_col2\" class=\"data row17 col2\" >72.234000</td>\n",
       "      <td id=\"T_ed3b4_row17_col3\" class=\"data row17 col3\" >127.356000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row18\" class=\"row_heading level0 row18\" >18</th>\n",
       "      <td id=\"T_ed3b4_row18_col0\" class=\"data row18 col0\" >Modelica.Mechanics.MultiBody.Examples.Constraints.PrismaticConstraint</td>\n",
       "      <td id=\"T_ed3b4_row18_col1\" class=\"data row18 col1\" >0.061000</td>\n",
       "      <td id=\"T_ed3b4_row18_col2\" class=\"data row18 col2\" >0.036000</td>\n",
       "      <td id=\"T_ed3b4_row18_col3\" class=\"data row18 col3\" >0.051000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row19\" class=\"row_heading level0 row19\" >19</th>\n",
       "      <td id=\"T_ed3b4_row19_col0\" class=\"data row19 col0\" >Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar_analytic</td>\n",
       "      <td id=\"T_ed3b4_row19_col1\" class=\"data row19 col1\" >0.030000</td>\n",
       "      <td id=\"T_ed3b4_row19_col2\" class=\"data row19 col2\" >0.018000</td>\n",
       "      <td id=\"T_ed3b4_row19_col3\" class=\"data row19 col3\" >0.018000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row20\" class=\"row_heading level0 row20\" >20</th>\n",
       "      <td id=\"T_ed3b4_row20_col0\" class=\"data row20 col0\" >Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulum</td>\n",
       "      <td id=\"T_ed3b4_row20_col1\" class=\"data row20 col1\" >0.030000</td>\n",
       "      <td id=\"T_ed3b4_row20_col2\" class=\"data row20 col2\" >0.027000</td>\n",
       "      <td id=\"T_ed3b4_row20_col3\" class=\"data row20 col3\" >0.024000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row21\" class=\"row_heading level0 row21\" >21</th>\n",
       "      <td id=\"T_ed3b4_row21_col0\" class=\"data row21 col0\" >Modelica.Mechanics.Rotational.Examples.FirstGrounded</td>\n",
       "      <td id=\"T_ed3b4_row21_col1\" class=\"data row21 col1\" >0.055000</td>\n",
       "      <td id=\"T_ed3b4_row21_col2\" class=\"data row21 col2\" >0.035000</td>\n",
       "      <td id=\"T_ed3b4_row21_col3\" class=\"data row21 col3\" >0.033000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row22\" class=\"row_heading level0 row22\" >22</th>\n",
       "      <td id=\"T_ed3b4_row22_col0\" class=\"data row22 col0\" >Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.MovingActuatedDrive</td>\n",
       "      <td id=\"T_ed3b4_row22_col1\" class=\"data row22 col1\" >0.027000</td>\n",
       "      <td id=\"T_ed3b4_row22_col2\" class=\"data row22 col2\" >0.012000</td>\n",
       "      <td id=\"T_ed3b4_row22_col3\" class=\"data row22 col3\" >0.030000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row23\" class=\"row_heading level0 row23\" >23</th>\n",
       "      <td id=\"T_ed3b4_row23_col0\" class=\"data row23 col0\" >Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar1</td>\n",
       "      <td id=\"T_ed3b4_row23_col1\" class=\"data row23 col1\" >1.205000</td>\n",
       "      <td id=\"T_ed3b4_row23_col2\" class=\"data row23 col2\" >0.501000</td>\n",
       "      <td id=\"T_ed3b4_row23_col3\" class=\"data row23 col3\" >nan</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row24\" class=\"row_heading level0 row24\" >24</th>\n",
       "      <td id=\"T_ed3b4_row24_col0\" class=\"data row24 col0\" >Modelica.Magnetic.FluxTubes.Examples.Hysteresis.InductorWithHysteresis</td>\n",
       "      <td id=\"T_ed3b4_row24_col1\" class=\"data row24 col1\" >55.853000</td>\n",
       "      <td id=\"T_ed3b4_row24_col2\" class=\"data row24 col2\" >27.343000</td>\n",
       "      <td id=\"T_ed3b4_row24_col3\" class=\"data row24 col3\" >45.658000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row25\" class=\"row_heading level0 row25\" >25</th>\n",
       "      <td id=\"T_ed3b4_row25_col0\" class=\"data row25 col0\" >Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.ActuatedDrive</td>\n",
       "      <td id=\"T_ed3b4_row25_col1\" class=\"data row25 col1\" >0.009000</td>\n",
       "      <td id=\"T_ed3b4_row25_col2\" class=\"data row25 col2\" >0.007000</td>\n",
       "      <td id=\"T_ed3b4_row25_col3\" class=\"data row25 col3\" >0.009000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row26\" class=\"row_heading level0 row26\" >26</th>\n",
       "      <td id=\"T_ed3b4_row26_col0\" class=\"data row26 col0\" >Modelica.Mechanics.MultiBody.Examples.Elementary.PendulumWithSpringDamper</td>\n",
       "      <td id=\"T_ed3b4_row26_col1\" class=\"data row26 col1\" >0.008000</td>\n",
       "      <td id=\"T_ed3b4_row26_col2\" class=\"data row26 col2\" >0.004000</td>\n",
       "      <td id=\"T_ed3b4_row26_col3\" class=\"data row26 col3\" >0.002000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row27\" class=\"row_heading level0 row27\" >27</th>\n",
       "      <td id=\"T_ed3b4_row27_col0\" class=\"data row27 col0\" >Modelica.Magnetic.FluxTubes.Examples.Hysteresis.SinglePhaseTransformerWithHysteresis2</td>\n",
       "      <td id=\"T_ed3b4_row27_col1\" class=\"data row27 col1\" >456.110000</td>\n",
       "      <td id=\"T_ed3b4_row27_col2\" class=\"data row27 col2\" >217.059000</td>\n",
       "      <td id=\"T_ed3b4_row27_col3\" class=\"data row27 col3\" >648.726000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row28\" class=\"row_heading level0 row28\" >28</th>\n",
       "      <td id=\"T_ed3b4_row28_col0\" class=\"data row28 col0\" >Modelica.Mechanics.Rotational.Examples.Friction</td>\n",
       "      <td id=\"T_ed3b4_row28_col1\" class=\"data row28 col1\" >0.015000</td>\n",
       "      <td id=\"T_ed3b4_row28_col2\" class=\"data row28 col2\" >0.005000</td>\n",
       "      <td id=\"T_ed3b4_row28_col3\" class=\"data row28 col3\" >0.028000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row29\" class=\"row_heading level0 row29\" >29</th>\n",
       "      <td id=\"T_ed3b4_row29_col0\" class=\"data row29 col0\" >Modelica.Blocks.Examples.InverseModel</td>\n",
       "      <td id=\"T_ed3b4_row29_col1\" class=\"data row29 col1\" >0.020000</td>\n",
       "      <td id=\"T_ed3b4_row29_col2\" class=\"data row29 col2\" >0.015000</td>\n",
       "      <td id=\"T_ed3b4_row29_col3\" class=\"data row29 col3\" >0.011000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row30\" class=\"row_heading level0 row30\" >30</th>\n",
       "      <td id=\"T_ed3b4_row30_col0\" class=\"data row30 col0\" >Modelica.Magnetic.FundamentalWave.Examples.Components.EddyCurrentLosses</td>\n",
       "      <td id=\"T_ed3b4_row30_col1\" class=\"data row30 col1\" >0.021000</td>\n",
       "      <td id=\"T_ed3b4_row30_col2\" class=\"data row30 col2\" >0.016000</td>\n",
       "      <td id=\"T_ed3b4_row30_col3\" class=\"data row30 col3\" >0.020000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_ed3b4_level0_row31\" class=\"row_heading level0 row31\" >31</th>\n",
       "      <td id=\"T_ed3b4_row31_col0\" class=\"data row31 col0\" >Modelica.Mechanics.Translational.Examples.ElastoGap</td>\n",
       "      <td id=\"T_ed3b4_row31_col1\" class=\"data row31 col1\" >0.002000</td>\n",
       "      <td id=\"T_ed3b4_row31_col2\" class=\"data row31 col2\" >0.001000</td>\n",
       "      <td id=\"T_ed3b4_row31_col3\" class=\"data row31 col3\" >0.003000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 28
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "### 找到相差太多的模型进行细化分析",
   "id": "c027aed8b2c6e53d"
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-15T06:17:06.800928Z",
     "start_time": "2024-05-15T06:17:06.779280Z"
    }
   },
   "cell_type": "code",
   "source": [
    "threshold_multiplier = 2  # 定义倍数阈值\n",
    "\n",
    "# 找出满足条件的模型\n",
    "much_slower_models = []\n",
    "for model_name in zq_dict:\n",
    "    if model_name in dymola_dict:\n",
    "        normal_time = zq_dict[model_name]\n",
    "        dymola_time = dymola_dict[model_name]\n",
    "        if normal_time > dymola_time * threshold_multiplier:\n",
    "            much_slower_models.append((model_name, normal_time / dymola_time))\n",
    "\n",
    "# 转换为 DataFrame 以便更好地展示\n",
    "df_much_slower = pd.DataFrame(much_slower_models, columns=[\"模型名称\", \"倍数差\"])\n",
    "\n",
    "# 按倍数差从大到小排序\n",
    "df_much_slower_sorted = df_much_slower.sort_values(by=\"倍数差\", ascending=False).reset_index(drop=True)\n",
    "\n",
    "# 打印排序后的结果\n",
    "print(\"Normal模式比Dymola慢很多倍的模型和相差倍数如下（按倍数从大到小排序）：\")\n",
    "df_much_slower_sorted"
   ],
   "id": "efe9bdd7ef7620eb",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Normal模式比Dymola慢很多倍的模型和相差倍数如下（按倍数从大到小排序）：\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "                                                 模型名称        倍数差\n",
       "0               Modelica.Fluid.Examples.HeatingSystem  11.000000\n",
       "1   Modelica.Mechanics.MultiBody.Examples.Loops.Pl...   7.469388\n",
       "2                Modelica.Media.Examples.R134a.R134a2   3.814691\n",
       "3                Modelica.Media.Examples.R134a.R134a1   3.504950\n",
       "4   Modelica.Magnetic.FluxTubes.Examples.Hysteresi...   3.114904\n",
       "5     Modelica.Mechanics.Rotational.Examples.Friction   3.000000\n",
       "6   Modelica.Mechanics.MultiBody.Examples.Loops.Fo...   2.875000\n",
       "7   Modelica.Mechanics.MultiBody.Examples.Loops.Fo...   2.405190\n",
       "8   Modelica.Mechanics.MultiBody.Examples.Elementa...   2.250000\n",
       "9   Modelica.Mechanics.MultiBody.Examples.Rotation...   2.250000\n",
       "10  Modelica.Mechanics.MultiBody.Examples.Loops.En...   2.196971\n",
       "11  Modelica.Magnetic.FluxTubes.Examples.Hysteresi...   2.101318\n",
       "12  Modelica.Magnetic.FluxTubes.Examples.Hysteresi...   2.042680"
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>模型名称</th>\n",
       "      <th>倍数差</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Modelica.Fluid.Examples.HeatingSystem</td>\n",
       "      <td>11.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Modelica.Mechanics.MultiBody.Examples.Loops.Pl...</td>\n",
       "      <td>7.469388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Modelica.Media.Examples.R134a.R134a2</td>\n",
       "      <td>3.814691</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Modelica.Media.Examples.R134a.R134a1</td>\n",
       "      <td>3.504950</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Modelica.Magnetic.FluxTubes.Examples.Hysteresi...</td>\n",
       "      <td>3.114904</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Modelica.Mechanics.Rotational.Examples.Friction</td>\n",
       "      <td>3.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Modelica.Mechanics.MultiBody.Examples.Loops.Fo...</td>\n",
       "      <td>2.875000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Modelica.Mechanics.MultiBody.Examples.Loops.Fo...</td>\n",
       "      <td>2.405190</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Modelica.Mechanics.MultiBody.Examples.Elementa...</td>\n",
       "      <td>2.250000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>Modelica.Mechanics.MultiBody.Examples.Rotation...</td>\n",
       "      <td>2.250000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>Modelica.Mechanics.MultiBody.Examples.Loops.En...</td>\n",
       "      <td>2.196971</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>Modelica.Magnetic.FluxTubes.Examples.Hysteresi...</td>\n",
       "      <td>2.101318</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>Modelica.Magnetic.FluxTubes.Examples.Hysteresi...</td>\n",
       "      <td>2.042680</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 29
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "### 找到相差最大的5个模型画图分析",
   "id": "641e2b6499b8c3a2"
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-15T06:17:09.946554Z",
     "start_time": "2024-05-15T06:17:09.628080Z"
    }
   },
   "cell_type": "code",
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "\n",
    "# 先排序并取出倍数最大的前五个模型\n",
    "top_5_models = df_much_slower_sorted.head(5)\n",
    "\n",
    "# 提取这些模型的运行时间\n",
    "top_5_data = []\n",
    "for model in top_5_models['模型名称']:\n",
    "    normal_time = zq_dict.get(model, float('nan'))\n",
    "    dymola_time = dymola_dict.get(model, float('nan'))\n",
    "    onestep_time = zq_n_dict.get(model, float('nan'))\n",
    "    simplified_name = '.'.join(model.split('.')[-2:])  # 简化模型名称\n",
    "    top_5_data.append([simplified_name, normal_time, dymola_time, onestep_time])\n",
    "\n",
    "# 转换为DataFrame\n",
    "df_top_5 = pd.DataFrame(top_5_data, columns=['简化模型名称', 'Normal时间', 'Dymola时间', 'Onestep时间'])\n",
    "\n",
    "# 绘图\n",
    "plt.figure(figsize=(12, 6))\n",
    "bar_width = 0.25  # 条形宽度\n",
    "index = np.arange(len(df_top_5))  # 模型数量对应的索引数组\n",
    "\n",
    "plt.bar(index, df_top_5['Normal时间'], bar_width, label='Normal', color='blue')\n",
    "plt.bar(index + bar_width, df_top_5['Dymola时间'], bar_width, label='Dymola', color='red')\n",
    "plt.bar(index + 2 * bar_width, df_top_5['Onestep时间'], bar_width, label='Onestep', color='green')\n",
    "\n",
    "plt.xlabel('模型名称')\n",
    "plt.ylabel('运行时间 对数刻度')\n",
    "# y轴对数刻度\n",
    "plt.yscale('log')\n",
    "plt.title('模型运行时间比较')\n",
    "plt.xticks(index + bar_width, df_top_5['简化模型名称'], rotation=45)  # 设置x轴标签\n",
    "plt.legend()\n",
    "\n",
    "# 设置中文字体\n",
    "plt.rcParams['font.family'] = 'Microsoft YaHei'\n",
    "plt.rcParams['font.size'] = 10\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "plt.show()\n"
   ],
   "id": "175f6b95ca66ffe7",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/oAAAL+CAYAAAAdAG8DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAADPh0lEQVR4nOzdd1yV9f//8edhiICACzcq5oq+Wg5K0xy5MtM0c6U5yo0jV6W50MQSt4GafcqVmeY20zT3KtwmOT7umeIAZI/r94c/zkcCDRQ8cHjcb7dzi3Nd51zndY5XcJ7Xe5kMwzAEAAAAAACsgo2lCwAAAAAAABmHoA8AAAAAgBUh6AMAAAAAYEUI+gAAAAAAWBGCPgAAAAAAVoSgDwAAAACAFSHoAwAAAABgRQj6AABYAcMwlJCQkGnHv337dqYdGwAAZCyCPgAAmWTRokVq0KBBiu0NGjTQokWLzPebNm2qBQsWmO8bhqH4+PjH3v5pzZo1eu6558z3d+3apWHDhmXI+zh+/LhKlSql1atXZ8jxHmX69OlasmRJiu3Dhg3T0KFDn/i4CQkJSkxMTHXft99+qwMHDqTpOAsWLNDChQtT3XfgwAEFBAQ8cY0AAGQkgj4AAJkkISFBMTExkqSwsDD9+eef+vPPP3X37l1dunTJfD8kJEQXL14031+7dq3s7e0fezty5IgWLFigxYsXp/rauXLl0vTp0xUYGGje1r59e5lMpsfeJk+enOw4kZGRat++vSpXrqxmzZpJkuzs7B57jC+++EKSFBISogsXLqS4PcrGjRu1d+/eFNtr1aql6dOnq2/fvjIMQ506dfrX91G7dm3z81944QWNGzcu1dccN26ctmzZ8siaHjZz5kxdvnw51X13795V//79tXbt2jQdCwCAzGRn6QIAAMgJfv31V7Vp08Z8//Dhwxo5cqT5/oEDBzRmzBhJD1rnDx8+rDlz5uj06dOaOnWqJKlbt25644031K5dO1WoUEFz5syRnZ2dOnXqlOL1XnnlFY0dO1YfffSRqlSpopo1a2rq1KkaO3bsY+ssVKiQ+ee4uDh17txZN2/e1KZNm2Rvby9JOnHihAzD+NdjDB06NFlPhSSPe25qWrZsqYCAAE2ePFm3b9+Wv79/ss/un7766isdOXIkXa/xTxcvXpSHh4cSEhJ0+/ZthYWF6ciRI5oyZYpu3LghW1tb2dra6s6dO5IkT09PtWjRQitXrpSXl5f5OK6ursk+UwAAngWCPgAAz8C7775rDri1a9dW9+7d1bVrV0lSvXr11KlTJ3Xv3j3ZcwoXLqybN2/qpZdekiQ5OzurePHi5vv/Zvjw4dq+fbuOHTummjVrqlixYipWrFianhsdHa3WrVtr586d2rBhg1xcXGQYhkwmkypUqJCmY0hSmzZtzN3dN2/erBYtWigkJEQhISEpHhsREaF79+7p5MmTsre313PPPae+ffuqevXq6tWrlzp16iRnZ2dJUtGiRR/5mgULFkxzfak5deqUateurS5duujdd99VzZo1zfvq168vSSpVqpS6du0qX1/fFM9/+OJGly5dNH/+/KeqBwCA9CLoAwCQwYYOHarVq1crPDxcYWFhKlu2rEqUKKGtW7cqMTFRnTt31v/93/+Zx9p36tRJlStXVnx8vGxtbXXz5k0ZhqHw8HDFxsbqxo0bkh60sIeHh+vGjRtycHD41zpsbGz066+/ymQyPdF72LNnj3799VfVrFlTLVu2lKur6yPHqD+uhty5c0uSuUfAV199lWpAlqTdu3fr+++/V/HixXXlyhUdO3bM3CLu7OyskydPpvq8pAsDT+uvv/5Sw4YNVaJECX322WfKly+fDMPQO++8o8qVK8swDL333nvmix1jx47VhAkTlCdPHg0cOFB3797VzJkz9dlnn8nOjq9ZAADL4C8QAAAZrEOHDqpdu7Z8fX1VoEAB+fn5ycnJSePGjXtkwE2ybds2vfXWW8km3StdurQkKTY2VocOHZKvr69ef/11lSxZMtVjhIaG6vr16+b7FStW1MiRI/Xnn3+mqf4+ffqoU6dO+uCDD1S1alVt2rRJ69at065du9L0/H8zduzYVIcQvPHGGypbtqy++uqrVJ8XHx+v559/PtV9SRcGHiUkJCTFRYJy5colu79r1y61atVKFStW1Lp165QvXz5J0r1797Rhwwb5+/urQYMGeu2118xB//Dhwxo7dqy+//57SQ96JSxatEjHjh3T0qVLzRc3AAB4lpiMDwCADFatWjW99tprCg4OVv78+VW/fn01btxYktS6dWsZhpHqrUCBApKk+/fvKzo6Wq+99ppGjRql6OhoRUdH69VXX9W0adMUHR2tDRs2PPL1ly9frueff958kx4E4bJly6ps2bKKjIzUmjVr5O7ubt728M3NzU01atRQ1apVde/ePXXv3l2DBg3Sq6++qoIFC/7rRHgmk+lfu6tfvnxZQUFBT/T5/vXXX8k+t19++eVfnxMQEJDsM3n++ed19+5d8/7Zs2erYcOGev3117V582ZzyJekH374QS+//HKKHgNhYWF677331Lp1a7Vt21aSVKJECW3btk1HjhxR27ZtFRcX90TvEQCAp0GLPgAAmWDx4sWyt7fXhQsXVLFiRW3dulWStGrVKnNX9n9KmqFfkpYtW6YdO3Zo5syZj3yNh2fUP336tHLlyiVJ6t69u7p3767169erefPmkh600id59dVX1bhxY82bN0/Sg8n1XnjhhRTHNwxD3bp105UrVzR48GBJ0v79+1Ms73fmzBm1aNFCS5cu1YsvvijpwRj67du368cff9SPP/6Y4tijRo3SgQMHdOzYMdnYpK/dITw8XPfu3TPfj4iI+NfnjBkz5pETEU6dOlV37tzRuHHjNGLEiBT7//Of/6hfv34ptnft2lUJCQnq2rWref4CSdq3b5/69OmjyZMnKzAwUAMHDkzbGwMAIIMQ9AEAyGARERGaNGmS2rRpozNnzphbfFu1aqVWrVrpp59+SvV5SZPIrV69Wh07dlS/fv1UqVKlR77OgQMH9Morr8je3l5xcXGphtF/Wr9+vf744w/zrPRbtmzRm2++qb1796p69erJHvvxxx9r9erVkmQO42XLlk1xzKTgX6pUKVWsWDHZvjfffFNTpkyR9GD8fY8ePSRJQ4YMUeXKlbVs2TK1b9/+X+t+2Msvv5xiW/HixdN1jIc5ODho69atqlOnTqr7Dx48qG7duqlbt26SpEaNGqlAgQJavXq1TCaTGjVqpJUrV+qNN96Q9OCiwnvvvafff//9kcMrAADITHTdBwAgg33xxRcqVKiQ6tatK0kaNGiQtm7dKhsbG61YseKR3d1v374tSapTp44+/fRTTZs2Ldlxd+zYocTERK1YsUKS9NJLL2nHjh3asmWLjh07plmzZj22rpiYGA0ePFj9+vXT//3f/0mSGjZsqLfeeksdOnRQeHi4+bGfffaZZs6cqU8//fSpPgsXFxdVrFhRFStWVIkSJczbK1WqpEaNGmnixInpPuauXbt0/fp1823JkiVPVaOPj88jQ74k3b1713zz8PDQ6tWrde7cOdWuXVu1atVSu3btNGPGDEnSzp07debMGXXr1k2lSpV6ookQAQB4WgR9AAAy2NmzZ/Xll18m2+bu7q68efOqT58+5rHl7u7uOnDggPl+lSpVlDt3buXPn1+jRo1SVFSU7t+/b75FRUVp3bp12rlzp+7fv6/Y2FhVrVpVVatWlaenp2JjYx9b18iRIxUVFaXx48fLMAyFhYXp0qVL6t27ty5evGjuni89WF5v0aJFatKkSaZ8RtKD4QS3bt3S5cuX0/W8ggULqkiRIubbw+PpM0PevHnNNxsbGzk7O8vV1dW8f9CgQdq8ebOWL1+uwYMH67333kt2UQMAgGeNrvsAAGSw2bNny83NLdmEdO3btzePVZ89e7Z5+z+7y9esWVOrVq3S/v37U1wsSLJly5ZUx+4/bhz66tWrNXnyZDk7O6tUqVIKCwtTQkKCpAfL1rm7u+ubb77Ru+++qyZNmujLL7+UnZ2dtm/fno53nj4tWrRQ48aN5ezsnK7npTbz/tN03U/N9u3btXDhQvn6+uqPP/7QtWvXdO3aNd25c0cDBgxQeHi4Jk+erHbt2qly5coaOHCgOnXqJEdHR/38888ZWgsAAOlF0AcAIIO5ubml2LZgwQJ98803kh5MctemTRvFxMToyJEjWrx4sbmbvyQ5OjqqcePGGjp0aIrjtGvXThUrVkx1mT4nJ6dk95OW0wsNDVWDBg00YcIEVahQQYUKFZK7u7vy5cun/Pnzm5eA69Gjh3km+oxaAz48PNy8rN0/l7+ztbVNd8iXpA0bNsjT0zPZtrQuYxcfH68ffvhBgYGB2rdv3yMfd/bsWc2fP19vv/22hg8frueee06enp6ysbFRu3bt9Oabb5qHP0gPhijExsaqQIECunr1qgoXLpzu9wUAQEYh6AMA8Aw4ODjIwcFBV65cUa9evXTmzBn98ccf+vXXX9WuXTuNGjVKAwcONM/I7+TklCK4Sw8CraOjo3nivtSEh4erb9++Wrdund58801Vr15dI0eOVOfOnVWkSJFHhvivv/5aUVFRCg8Pl4uLS5rfW9JkfKmNR9+wYcNjlwJ8WGJi4mPHtJtMJhUuXFjlypVLdVLARx0nMTFR4eHhmj59uqZPn67r16+bJwB81OudP39eJUqU0Ntvv62333472fupVauWvL29JT1Y7aB///7as2ePvv76a61YsUI1atRQ//799fHHHxP4AQAWwRh9AAAyWVRUlH744Qd16NBBZcqUUVxcnPbt26cCBQqoQ4cOWrFihaZPn66SJUuqe/fuj12fftOmTZoyZcoj9xcsWFBHjx7VL7/8op07d2rdunXq1auXRo0aJQ8PD9nb28vW1laOjo5yc3NTwYIF5e7uLmdnZ3MLe9Kye4+zcOFCzZ49W4sWLdL48eMlSUWKFEnxuHbt2pnnINi8eXOyFvwLFy4oKChIJ06c0K5du3T48GEVK1bska9pa2urGzdupAj54eHhCgoK0rFjx3Tw4EFt2LDBHLAvXryoixcvaurUqRo/fry6du2qS5cuacGCBZKkAgUKaOvWrTpx4oROnjypkydPaseOHVq8eHGqs/sn2b9/v9q3by8vLy/duHFDf/zxh3r06KENGzZo/Pjx+uabb1SyZEmNHDnyXz9LAAAyGi36AABkMltbW40bN07PP/+81q1bl2KCuyZNmujUqVOaNm2a1q9fryNHjqTa/T+tr+Xh4aGDBw+qVKlSkqShQ4dq6NChun79um7fvq34+HglJCQoISHBvP67yWSSjY2NbGxsVKFChX99nXXr1mnFihUyDEN58uTR4MGDza+XZNKkSTIMw3y/YcOGun//vvn+7t271aVLFyUmJsrGxkbe3t764IMP0v2eIyIi9Morr8gwDNnY2MjLy0ujRo2SJOXPn18VK1ZU06ZNNWrUqBRDBT777DP16tUrWTd8GxsbVapUyXwBIzWxsbG6evWqVq5cqebNm5t7BtjY2OiTTz5Rz549NXPmTHXu3Dnd7wcAgKdlMh7+CwwAADJFUqBGSklfRZ7280lMTJT0IGw/LD4+PsPmHAAAIDsg6AMAAAAAYEUYow8AAAAAgBUh6AMAAAAAYEUI+gAAAAAAWBFmpnmMxMREXbt2TS4uLkygBAAAAADIdIZhKDw8XMWKFUsxwWxaEfQf49q1a/Lw8LB0GQAAAACAHOby5csqUaLEEz2XoP8YLi4ukh58wK6urhauBgAAAABg7cLCwuTh4WHOo0+CoP8YSd31XV1dCfoAAAAAgGfmaYaPMxkfAAAAAABWhKAPAAAAAIAVIegDAAAAAGBFGKOfARISEhQXF2fpMvAP9vb2srW1tXQZAAAAAPBMEfSfgmEYunHjhu7du2fpUvAIefPmVZEiRZ5qIgsAAAAAyE4I+k8hKeQXKlRITk5OhMksxDAMRUZG6ubNm5KkokWLWrgiAAAAAHg2CPpPKCEhwRzyCxQoYOlykApHR0dJ0s2bN1WoUCG68QMAAADIEZiM7wkljcl3cnKycCV4nKR/H+ZQAAAAAJBTEPSfEt31szb+fQAAAADkNAR9AAAAAACsCEEf2ULp0qX1+eefW7oMAAAAAMjyCPo5UNeuXWUymTR79uwU++bPny87O+ZoBAAAAIDsiqCfCUymZ3d7UnZ2dhoxYoR5+TkAAAAAgHWw+qAfHR2tevXqqVy5cnrxxRd19OhRS5eUJdSqVUtFihTRsGHDLF0KAAAAACADWX3Qt7Oz0/Lly3XmzBn17dtXkyZNsnRJWYKdnZ0CAwO1aNEi7dq165GP27hxo2rUqCFHR0fly5dPHTt2TNYLoF69evrwww/Vu3dv5c6dW+vXr9fYsWNVtmxZrVixQmXKlJGLi4uGDh2qqKgo9ezZU66uripZsqQWLlxoPs7t27fVs2dPeXh4KE+ePHr99dd19uzZTP0MAAAAAMAaZaugf/ToUVWtWlW7d+9Ott0wDPn6+qpYsWJydnZWq1atdOvWLUkPAq27u7sSExN15coVVapUyRKlZ0n169fXe++9p759+yo+Pj7F/i1btqhZs2Z69dVXtWvXLn3//fc6fPiw3nnnnWSP+/XXX+Xo6KidO3eqatWqkqSbN29q6dKlWrZsmUaMGKEpU6botddeU968ebV9+3bVr19fPXv2NF80CA4OliQtWLBAv/32m27evKl+/fpl8icAAAAAANYnWwT9Q4cOqW3btqpZs6YOHz6cYr+/v79mzpypuXPnavPmzTp16pS6dOli3j9q1Cjlz59fmzdvVt++fZ9l6Vne1KlTdeXKFU2fPj3FvvHjx+vNN9/U1KlTVb16db355ptaunSp9uzZox07dpgflytXLk2dOlUvv/yyihUrJkmKiorSnDlzVL16dQ0fPlyenp6KiYnRpEmTVLVqVX3++eeKiYnRoUOHJEmvvfaavv76a73++ut65ZVX1Lt3b+3fv/+ZfAYAAAAAYE2yRdBfuXKlHBwctH79+hT7EhMT5e/vr5EjR6p58+Z69dVXNXXqVP3yyy86f/68pAeB9c6dO2rXrp3ef//9Z11+llaoUCH5+fnJ19dXV65cSbbvwIEDatSoUbJtlStXlpubm06cOGHe5u3tLdM/ZgYsXry4ChQoYL5fokQJc2u/JPMFgdu3b0uS4uPjFRgYqLffflsVKlTQ4MGDde/evQx5jwAAAACQk2SLoD9+/HgtWrRIZcqUSbHv+PHjCgkJUdOmTc3b6tatKxsbm2QtwjY2NurZsyetxKno1auXvLy89NFHHyUL7A4ODrKxSf0UiY2NNf+cJ0+eFPv/uUSfjY2N7O3tzfdtbW0lPRh2IUndu3fXzJkz1blzZ/3888+aM2fOk78hAAAA5HjPciUsS6+oBfxTtgj6/2wtfti5c+ckSZ6enuZtjo6Ocnd315UrV3TmzBmFhIRIklavXq1q1ao98lgxMTEKCwtLdssJbGxsNGfOHK1evVq//fabeXvlypW1ZcuWZI89fvy4QkND5e3tnaE1rFy5UoMGDVLr1q1VtmxZnT59OkOPDwAAAAA5hd2/PyRru3//vmxsbOTg4JBsu5OTk2JiYnT79m1za3+ZMmU0b968Rx5r4sSJ8vX1zdR6s6oqVaqoX79+mjVrlvnCypgxY9SgQQMNHTpUHTp00K1btzR06FA1atRItWrVytDXL1y4sJYvX65XXnlFR48e1ZIlSzL0+AAAAACQU2SLFv3HcXBwUGJiYopZ46Ojo+Xk5KQaNWrov//9r/773//q119/ValSpR55rOHDhys0NNR8u3z5cmaXn6WMHz9eRYoUMd+vX7++fvrpJ23ZskU1a9ZUly5dVK9ePa1atSrDX/ubb77R1atXVbNmTa1cuVLDhg3L8NcAAAAAgJzAZCQNks4GLly4IE9PT+3atUu1a9eWJO3Zs0e1a9fW+fPnVbp0aUkPuuDnyZNHy5cvV8uWLZ/49cLCwuTm5qbQ0FC5urom2xcdHa3z58/L09NTuXPnfuLXQObi3wkAACBnyo5j3rNPMkNmelwOTats36JftWpVOTo6avPmzeZtO3bskMlkUp06dSxYGQAAAAAAz162H6Pv6OioPn36aPTo0SpZsqTy5MmjgQMHqlevXsqfP/8THTMgIEABAQFKSEjI4GoBAAAAAMhc2T7oS5Kfn5+ioqLUtm1b2draqlOnTvL393/i4/n4+MjHx8fcZQIAAAAAgOwiWwX90qVLK7UpBRwcHBQYGKjAwEALVAUAAAAAQNaR7cfoAwAAAACA/yHopyIgIEBeXl7y9va2dCkAAAAAAKRLtuq6/6wwRh8AAAAAHs/km/3WMDTG5Iw1DGnRBwAAAADAihD0AQAAAACwIgR9AAAAAACsCEE/FUzGZxnbt2+XyWTSlStXLF0KAAAAAGRbBP1U+Pj4KDg4WEFBQZYuJVN07dpVJpNJJpNJ9vb2KlWqlD744AOdPHnS0qUBAAAAAJ4SQT8zmEzP7vaEXn31VZ05c0bHjx/XnDlzFBMTo6pVq2rFihUZ+EEAAAAAAJ41ltfLoRwdHVW2bFlJUsWKFdW0aVMFBASoY8eOevHFF837AAAAAADZCy36MPPx8VGFChXUv39/mUwm7d69O9n+Ro0aqUuXLpIkk8mkwMBAtW3bVk5OTqpcubKOHDmi3377TS+88ILy5MmjZs2aKSQkxPz88PBw+fj4qGjRosqVK5deeOEFLVmy5JH1XLhwQR06dFDRokXl5uamli1b6tatW5nz5gEAAADAShD0kUz9+vUVEhKicuXKadWqVebtISEh2r59u95//33zti+++EItW7bUli1blJiYqPbt2+ujjz7SV199paVLl2rv3r2aMGGCJMkwDL311lvauHGjZs+erf3796tVq1bq1KmTtmzZkmot+/btU8mSJbVs2TKtXr1aQUFBGj16dOZ+AAAAAACQzdF1PxUBAQEKCAhQQkKCpUt55vLmzauwsDB17NhRCxYs0JQpUyRJq1atUqFChfT666+bH9u6dWu99957kqRhw4apa9eu+umnn1S/fn1J0jvvvKN9+/ZJejCj/s6dO3XgwAFVq1ZNklS1alUFBwdrwoQJatiwYYpaOnTooA4dOiS7/6iLAgAAAACAB2jRT4W1z7r/ODdu3FChQoXUqVMnnT9/XkePHpUkLV++XB07dpSNzf9OmRdffNH8s4eHh6QH4T1JsWLFdPv2bUnSgQMHlC9fPnPIT1KnTh2dOHEi1VoiIiI0adIkvfHGGypTpoymT5+ue/fuZcj7BAAAAABrRdCHWWJion799VfVr19fzz33nGrUqKGVK1fq9u3b2rZtmzp16pTs8XZ2/+sQknQBwN7e3rzN1tZWhmFIkhwcHJJdJHhYbGxsqtubNWum1atXq3///tq6datGjhz5VO8PAAAAAHICuu7DbMKECbpz5458fHwkSZ06ddLcuXPl4eGhF154QZUrV37iY1euXFm3b9/WkSNH9NJLL5m379q1S97e3ikef+fOHe3YsUMbN25UkyZNJEknT5584tcHAAAAgJyCoJ9DRUVF6b///a/i4+N17tw5fffdd9q0aZNWrVqlwoULS5LatWunQYMGKTAwMNkkfE+iXr16qlevntq0aaPJkyerZMmSWr16tdatW5fquHsXFxc5OTlp4cKFKlq0qLZu3arffvtNzs7OT1UHAAAAAFg7uu7nUHv37lW5cuVUuXJl9evXTwULFtTRo0fVoEED82MKFiyoxo0b6+jRo8kmxXtSK1asUO3atfXBBx+oRo0a2rhxo37++WfVqVMnxWPt7e01f/587dmzRzVr1tSxY8fUu3fvp64BAAAAAKydyUgaRA2zh2fdP336tEJDQ+Xq6prsMdHR0Tp//rw8PT2VO3duC1Wa+fr06aOzZ8/q119/tXQpTySn/DsBAAAgOZPJ0hWkX3ZLZibf7PchG2Oy/occFhYmNze3VHNoWtGin4qcPOv+w6KiovTjjz+qW7duli4FAAAAAJBGjNFHCpGRkTp69Ki+/fZbFSpUSG3atLF0SQAAAACANCLoI4U7d+6oYcOG8vLy0urVq5MtowcAAAAAyNpIcEihRIkSioiIsHQZAAAAAIAnwBh9AAAAAACsCEEfAAAAAAArQtAHAAAAAMCKEPQBAAAAALAiBP1UBAQEyMvLS97e3pYuBQAAAACAdCHop8LHx0fBwcEKCgqydCkAAAAAAKQLQR8AAAAAACtC0M+hQkNDNWLECFWoUEG5c+dWgQIF1KpVKx05cuSZ1XD69Oln9loAAAAAkFPYWboAa2TyNT2z1zLGGOl+TkhIiF577TVJ0tixY1W5cmWFhITom2++Uc2aNbVu3To1bNgwo0tNZvny5Wrbtq0MI/31AwAAAAAejaCfAw0YMEAJCQkKCgqSm5ubeXvdunXl4OCgTp066fz583J0dMy0GmJiYjLt2AAAAACQk9F1P4cJCQnRsmXLNG7cuGQhP8m4ceMUEhKiVatWqWvXrmrYsKEWLFigUqVKKV++fOrevbtiY2PNj7927Zpat26tPHnyyMPDQ5988ol5f2JiokaPHq2SJUsqd+7cqlSpkm7duqWuXbvq/ffflySZTCaVLl1akmQYhr744guVKFFCrq6uaty4sc6cOWN+rdKlS8vPz0+fffaZ3N3d5erqqm7duikyMjITPzEAAADgGTGZstcNWRZBP4c5cOCAEhIS1KhRo1T3FytWTCVLltTBgwclScePH9fGjRu1YsUK+fn56dtvv9W3334rSUpISNCbb74pk8mk7du3a86cOVq8eLG++OILSVJgYKBmzZqlOXPm6Pfff1efPn0kSZMmTdLkyZMlSWfOnNGOHTskSVOmTFFgYKC++uorbd++XS4uLnrrrbcUFxdnrm/OnDm6f/++Nm7cqMDAQK1atUqjR4/OnA8LAAAAALIhuu7nMLdv35Yk5cuX75GPKVasmMLDwyU9aJX/7rvvlDt3blWvXl2LFy/Wzp071bt3by1fvly3b99WUFCQ7O3tJUmDBg3S3LlzNXr0aJ0+fVpFixZVkyZNZGtrqxdffNH8GoULF5YklS1bVpIUGxurcePGadmyZXrjjTckSV9//bUKFiyoP/74Q7Vq1ZIklSlTRjNmzJAkVatWTZcuXdIXX3xhvnAAAAAAADkdLfo5TJ48eSRJV65ceeRjrl27pvz580uSvLy8lDt3bvM+T09P3bp1S5J08OBBXbt2TS4uLsqdO7dy586tESNG6MKFC5KkDz/8UDdv3lSlSpU0b948RUdHP/I1z5w5o/DwcLVs2dJ8rOLFi0uS+XiSVLt27WTPq169usLDwxUSEpL2DwEAAAAArBgt+qkICAhQQECAEhISLF1KhqtWrZokadeuXerYsWOK/devX9elS5f0yiuvaM2aNeaW+iR2dnbmmfLj4uL0wgsvaNmyZam+1osvvqgzZ85o9uzZGjNmjPz9/bVr1y5za/7Dkrrnr1ixQs8991yyfUWLFjX/nCtXrmT77t+/L5PJZL6AAQAAAAA5HS36qfDx8VFwcLCCgoIsXUqGK1GihJo1a6axY8cqIiIixf4RI0aoePHiatas2b8eq2LFijp//rwKFy6sihUrJrslyZcvn0aMGKHg4GDduHHDfFHAxubBqRcfHy/pQRd+Ozs7Xb9+PcWxHp408NixY8lq+O2331ShQoVkvQ4AAAAAICejRT8Hmj17tmrVqqXatWtr1KhRev7553X9+nV9/fXX+vnnn7Vx48YULeep6dixo8aMGaN33nlHY8aMkbOzs7Zs2aICBQqoZ8+emjZtmooWLar/+7//U3BwsKKiolSuXDlJkoeHhyRp4cKFeumll1S1alX16NFDn3zyiezs7FSlShWdOnVK69at06JFi8yv+fPPP8vPz09NmzbV9u3bNW/ePM2bNy9zPigAAAAAyIYI+jmQh4eHgoKC9Pnnn+ujjz7SjRs3lC9fPjVs2FBBQUHJWuQfx8XFRb/88osGDRqkN954Qy4uLnrllVf05ZdfSpKcnJw0bNgw3bp1S6VKldL06dPNE+3Vrl1bnTt3Vv/+/VW5cmXt27fPPKHe0KFDFRUVpeeee04fffRRstfs37+/Dh48qPHjx6tgwYLy8/NTly5dMu7DAQAAAIBszmQkDbhGCmFhYXJzc1NoaKhcXV2T7YuOjtb58+fl6elJt/FnpHTp0urevbtGjhyZ5ufw7wQAAJAzZcdl3g1lr6JNYy1dQfoZY7J+/H1cDk0rxugDAAAAAGBFCPoAAAAAAFgRgj4AAAAAAFaEyfiQbVy4cMHSJQAAAABAlkeLPgAAAAAAVoSg/5RYtCBr498HAAAAQE5D0H9C9vb2kqTIyEgLV4LHSfr3Sfr3AgAAAABrxxj9J2Rra6u8efPq5s2bkiQnJyeZsuNinVbKMAxFRkbq5s2byps3r2xtbS1dEgAAAAA8EwT9p1CkSBFJMod9ZD158+Y1/zsBAAAAQE5A0H8KJpNJRYsWVaFChRQXF2fpcvAP9vb2tOQDAAAAyHEI+qkICAhQQECAEhIS0vR4W1tbAiUAAAAAIEtgMr5U+Pj4KDg4WEFBQZYuBQAAAACAdCHoAwAAAABgRQj6AAAAAABYEYI+AAAAAABWhKAPAAAAAIAVIegDAAAAAGBFCPoAAAAAAFgRgj4AAAAAAFaEoA8AAAAAgBUh6AMAAAAAYEUI+gAAAAAAWBGCPgAAAAAAVoSgDwAAAACAFSHoAwAAAABgRQj6AAAAAABYEYI+AAAAAABWhKAPAAAAAIAVIegDAAAAAGBFrD7oJyQkaNCgQapQoYLKly+v1atXW7okAAAAAAAyjdUH/fv376t69eo6efKkNmzYoB49eigxMdHSZQEAAAAAkCmyVdA/evSoqlatqt27dyfbbhiGfH19VaxYMTk7O6tVq1a6deuWJMnNzU0dO3aUyWRS2bJlJUmxsbHPvHYAAAAAAJ6FbBH0Dx06pLZt26pmzZo6fPhwiv3+/v6aOXOm5s6dq82bN+vUqVPq0qVLisctXrxYVatWVe7cuZ9F2QAAAAAAPHN2li4gLVauXCkHBwetX79eDRo0SLYvMTFR/v7+GjlypJo3by5Jmjp1qpo2barz58/L09PTvG3x4sX6+eefn3n9AAAAAAA8K9ki6I8fP14mk0kXLlxIse/48eMKCQlR06ZNzdvq1q0rGxsb7d+/X56envrkk0905coV7dq1S87Ozo98nZiYGMXExJjvh4WFZej7AAAAAAAgs2WLrvsmk+mR+86dOydJ5pZ7SXJ0dJS7u7uuXLmi4OBg7d69W4sXL35syJekiRMnys3NzXzz8PDImDcAAAAAAMAzki2C/uPcv39fNjY2cnBwSLbdyclJMTExOnbsmP7880+VK1dOZcuWVdmyZbVt27ZUjzV8+HCFhoaab5cvX34WbwEAAAAAgAyTLbruP46Dg4MSExMVHx8vO7v/vZ3o6Gg5OTmpffv2at++fZqP9c8LBgAAAAAAZCfZvkW/ePHikqQrV66Yt8XExOjWrVsqU6aMpcoCAAAAAMAisn3Qr1q1qhwdHbV582bzth07dshkMqlOnTpPdMyAgAB5eXnJ29s7o8oEAAAAAOCZyPZd9x0dHdWnTx+NHj1aJUuWVJ48eTRw4ED16tVL+fPnf6Jj+vj4yMfHR2FhYXJzc8vgigEAAAAAyDzZPuhLkp+fn6KiotS2bVvZ2tqqU6dO8vf3t3RZAAAAAAA8cybDMAxLF5FVJbXoh4aGytXV1dLlAAAAAEijx6zQnWUZyl5Fm8ZauoL0M8Zk/fibETk024/RBwAAAAAA/0PQTwWT8QEAAAAAsiuCfip8fHwUHBysoKAgS5cCAAAAAEC6EPQBAAAAALAiBH0AAAAAAKwIQT8VjNEHAAAAAGRXBP1UMEYfAAAAAJBdEfQBAAAAALAiBH0AAAAAAKwIQR8AAAAAACtC0AcAAAAAwIoQ9FPBrPsAAAAAgOyKoJ8KZt0HAAAAAGRXBH0AAAAAAKwIQR8AAAAAACtC0AcAAAAAwIoQ9AEAAAAAsCIEfQAAAAAArAhBPxUsrwcAAAAAyK4I+qlgeT0AAAAAQHZF0AcAAAAAwIoQ9AEAAAAAsCIEfQAAAAAArAhBHwAAAAAAK0LQBwAAAADAihD0AQAAAACwIgT9VAQEBMjLy0ve3t6WLgUAAAAAgHQh6KfCx8dHwcHBCgoKsnQpAAAAAACkC0EfAAAAAAArQtAHAAAAAMCKEPQBAAAAALAiBH0AAAAAAKwIQR8AAAAAACtC0AcAAAAAwIoQ9AEAAAAAsCIEfQAAAAAArAhBHwAAAAAAK0LQT0VAQIC8vLzk7e1t6VIAAAAAAEgXgn4qfHx8FBwcrKCgIEuXAgAAAABAuhD0AQAAAACwIgR9AAAAAACsCEEfAAAAAAArQtAHAAAAAMCKEPQBAAAAALAiBH0AAAAAAKwIQR8AAAAAACtC0AcAAAAAwIoQ9AEAAAAAsCIEfQAAAAAArAhBHwAAAAAAK0LQBwAAAADAihD0UxEQECAvLy95e3tbuhQAAAAAANKFoJ8KHx8fBQcHKygoyNKlAAAAAACQLgR9AAAAAACsCEEfAAAAAAArQtAHAAAAAMCKEPQBAAAAALAiBH0AAAAAAKwIQR8AAAAAACtC0AcAAAAAwIqkK+h/8MEHkqQpU6Y89nHTpk3T1atXn7wqAAAAAADwRNIV9H/66SdJ0owZM5Jtj4uLS3Z/1qxZunLlylOWBgAAAAAA0ivdXfdjYmKUmJioqKgoRUZGKj4+Xs8995y++OILSVJkZKSuXbumKlWqZHixAAAAAADg8ezS82DDMFSzZk1du3ZNrq6uSkxM1IQJE2QYhhYvXqzSpUvL2dlZL730knLlypVZNQMAAAAAgEdIV4u+yWTSoUOHVLx4ccXFxalq1aoaNGiQTCaT1q1bp08++URz5sxRp06dMqteAAAAAADwGGkO+osWLTL/bDKZkv1Xkjw9PTVw4EBt27aNoA8AAAAAgIWkqev+9OnT9dVXX/3r486cOaO4uDjdv39fefPmfdraAAAAAABAOqWpRb979+46ceKEJOn8+fOKj49XcHCwoqOjdfv2bRmGoWXLlmn//v3q06ePvvnmm0wtGgAAAAAApC5NQT9PnjxycHCQYRj66KOPdOvWLb399tuKiorSihUrJEkTJkzQ6tWr1a1bt2Td/AEAAAAAwLOTrln3TSaT1qxZIw8PD505c8a8fdKkSdqxY4fy5s2rUqVKKSoqSpcuXVLJkiUzvGAAAAAAAPBo6Zp1P4mHh0ey+yNGjEg2Jv+VV17R9u3bn6auDBcbG6s5c+aoQ4cOli4FAAAAAIBMk64W/YiICJUpU0aGYahMmTIymUzKnTu3XF1dtXPnTlWpUkUtW7ZU//79Vb58+cyq+Ym89NJLKl++vOLj4y1dCgAAAAAAmSZdQf/QoUMptkVGRio0NFSnTp3S3r175evrq7p162rOnDkZVuTDjh49qm7dumnmzJmqXbu2ebthGBo3bpzmzp2r0NBQNW7cWF9//bXc3d0lSXv37tWRI0c0efLkTKkLAAAAAICsIF1B/8UXX3zkvjfeeEMDBw7U7du3NW3aNDk7Oz91cQ87dOiQvvjiC61fv15RUVEp9vv7+2vmzJmaP3++ChQooO7du6tLly7asGGDJLHcHwAAAAAgR0hT0F+7dm26Dlq/fn3lyZPniQp6lJUrV8rBwUHr169XgwYNku1LTEyUv7+/Ro4cqebNm0uSpk6dqqZNm+r8+fPy9PTM0FoAAAAAAMiq0hT0p02blq6Dnj9/XqVLl87QCfnGjx8vk8mkCxcupNh3/PhxhYSEqGnTpuZtdevWlY2Njfbv30/QBwAAAADkGGkK+tu2bUvXQUNDQ1WwYMEnKuhRTCbTI/edO3dOkpIFekdHR7m7u+vKlStpfo2YmBjFxMSY74eFhT1BpQAAAAAAWE66xui///77jw3cjRs3VqdOnWRnZ6eEhISnLi6t7t+/LxsbGzk4OCTb7uTklCy4/5uJEyfK19c3o8sDAAAAAOCZSVfQb9iw4WP3Jy2pZxiG1qxZ8+RVpZODg4MSExMVHx8vO7v/vaXo6Gg5OTmZ79erV0/16tV75HGGDx+uwYMHm++HhYXJw8MjU2oGAAAAACAzpCvob9iwQePGjVOFChUkSWfPnlVYWJiqVKmS7HEjR46Ug4ODeWK8zFa8eHFJ0pUrV1S6dGlJD7rh37p1S2XKlEnzcRwcHFL0CgAAAAAAIDuxSc+DL126pJiYGN24cUOS9Ndff6lhw4bq3r277t+/r+joaLVs2VL79u1Tv379MqXg1FStWlWOjo7avHmzeduOHTtkMplUp06dZ1YHAAAAAACWlq6gnzQ+v0WLFmratKlKly6t//73v8qTJ49eeukl1a5dW3ny5NHOnTufaZd3R0dH9enTR6NHj9amTZu0Z88eDRw4UL169VL+/PnTfbyAgAB5eXnJ29s7E6oFAAAAACDzpCno//777+rWrZtu374t6UFree3atVW7dm0tWbJE06dP18yZM3Xp0iW1a9fOIt3f/fz81KpVK7Vt21bNmzdXo0aNNHny5Cc6lo+Pj4KDgxUUFJTBVQIAAAAAkLlMhmEYj3vA9evXVbNmTXXp0kUrVqxQv3791Lt3b0kPJt8zDEOvv/665s6da+7KP2vWLL3zzjvP5A1kprCwMLm5uSk0NFSurq6WLgcAAABAGj1msbAsy1D2Kto01tIVpJ8x5rHxN0vIiBz6ry36RYsW1YULF+Tr6ysXFxf5+vqqYcOGOnPmjHLnzq2NGzdqz549ev/99/X8889rzZo16tmzpw4ePPhEBQEAAAAAgCeX7jH669evV4sWLVSvXj1dvHhRuXPn1tatW7Vjxw598sknql69unx9fdW2bVuFhYVlVt2ZijH6AAAAAIDsKl3L6xmGIXt7ew0YMEDt2rXTzJkz5erqKhcXFy1dulT169dXw4YN5ePjo3v37iVb0z478fHxkY+Pj7nLBAAAAAAA2cW/jtH/p8uXL8vNzS3VsQIHDx5UtWrVdO7cuXStX59VMUYfAAAAyJ4Yo5/5GKOfOZ7JGP1/6tWrl/z8/HTmzBklJiYm21etWjXduHFDNWvW1Lx5856oIAAAAAAA8OTSHfQNw9DSpUv12muvyc3NTW+88Ybmz5+vmJgY3bt3T61atVLFihX14YcfZka9AAAAAADgMdId9CVp3LhxunHjhk6ePKk2bdooICBA5cuXV82aNeXi4qL169fLxuaJDp0lMBkfAAAAACC7+tc0bhiG+vfvr/nz5+vEiRPJuusXL15cVapUUfny5XXr1i1dvXpV1atXl4uLS6YWndl8fHwUHBysoKAgS5cCAAAAAEC6/Ou0+DExMXJxcdEPP/ygvn37Kjo6WvHx8frpp5905MgRubm5qXXr1rp48aKuXr2qpk2byjAMTZw48VnUDwAAAAAAHvKvQT937tzy8/OTJEVHR2v16tX66quvtHfvXu3atUvVq1c3P9bd3V2//fabatSooZdeeknt2rXLvMoBAAAAAEAKaRpIf/bsWTVp0kSXLl1S+/btVbJkSf3444+6fv26JOmnn37SpUuXJEkVKlQwXxgAAAAAAADP1r+26EtSmTJl1KxZM9WuXVurVq3S7t27Va9ePfN4/f79+8vBwUE9evRQqVKltHLlSm3dujVTC89MAQEBCggIUEJCgqVLAQAAAAAgXdIU9M+fP6+33npLNWrUUIECBRQfH68tW7ZoxowZ5sccPXpU7777rvbs2aPVq1dnVr3PhI+Pj3x8fBQWFiY3NzdLlwMAAAAAQJqlKeg3adJEkmQymWQYhm7cuKFt27bJz89Pb775piTJzc1N/fv312+//SZbW9vMqxgAAAAAADxSmoL+mTNnJEkHDhxQ9erV5e7uripVqqh3795q3769bt68qaCgIE2bNk3jxo3TRx99pOPHj2dq4QAAAAAAIKU0TcZ36dIlNW3aVK1atdLZs2eVO3dutWzZUsuWLdPx48fl7u6uDh06yNbWViNHjlSePHm0c+fOzK4dAAAAAAD8Q5qCft68edW0aVOdPn1azz33nOzs7NStWzctWrRIsbGxMplMOnbsmL7++mtJ0rvvvqvly5dnauEAAAAAACAlk2EYRnqesHXrVtWvX18mk0l///23ChcurIsXL6pUqVLmx9y5c0d2dnZydXXN8IKfpaTJ+EJDQ7P9ewEAAAByEpPJ0hWkn6HsVbRprKUrSD9jTLrir0VkRA5NU4v+wxo1aqT4+HhJUuHChSUpWciXpPz582frYBwQECAvLy95e3tbuhQAAAAAANIlTZPx9ejRQ6b/f0nMMAz17t37kTPrm0wmFSlSRD169FCJEiUyrtJniOX1AAAAAADZVZqCfunSpc0/m0wmlSxZUnZ2qT/VMAxt27ZNP//8sw4cOJAhRQIAAAAAgLRJ9xh9W1tbRUVFKVeuXI98zOnTp/XCCy8oLi7uqQu0JMboAwAAANkTY/QzH2P0M4dFxuj/08qVK+Xl5aVjx46Zt8XHxyshIeFpDw0AAAAAANIpTV33U3Pw4EENHDhQZ8+e1ccff6wKFSqY97m4uCggICBDCgQAAAAAAGmX7qCf1NM/IiJCLVu2lI+PjxwdHc374+Li5OHhoT59+mRclQAAAAAAIE3S3HV/69at+vLLL7Vq1SpdvXpVderU0dChQ5OF/AULFqhUqVLasWNHphQLAAAAAAAeL80t+ps3b9a6detUoEABnTp1SnFxcWrWrJlat26tIkWKaMiQITp//rwmTpyounXrZmbNmS4gIEABAQHMMwAAAAAAyHbS1XW/RYsW8vPzkySdPXtWP/zwg9q0aaOEhASVKlVKR44ckbu7e6YU+iz5+PjIx8fHPNshAAAAAADZxRPPun/ixAl9/fXXatKkiVavXq0iRYro5Zdf1vr16zOyPgAAAAAAkA7pnozv+vXr6tu3r06cOKHAwEC99dZbkqTmzZtrwYIFeu+999S/f39NmDAhw4sFAAAAAACPl+agny9fPplMJhmGoVdeeUU//vijcuXKlewxXbp00YsvvqgWLVoob968GjZsWIYXDAAAAAAAHs1kJK2Xl4Hu3bsnNzc3mUymjD70M5U0Rj80NFSurq6WLgcAAABAGmXHKGIoexVtGmvpCtLPGJPh8TfDZUQOTXfX/bTImzdvZhwWAAAAAAD8iyeejA8AAAAAAGQ9BH0AAAAAAKwIQR8AAAAAACuS5jH6nTt3TvNB8+TJox49eqhKlSpPVBQAAAAAAHgyaQ76ixcv1owZM2Rj8++dAA4ePKh3331XZ8+efariLCUgIEABAQFKSEiwdCkAAAAAAKRLmpfXs7GxUXx8fJqCfnh4uPLmzav4+PhsvcQey+sBAAAA2VN2jCEsr5f5WF7vHx4O7N9//32qrd329vbq0KGDYmJiZBhGtg75AAAAAABkR2mejO/hhv/u3btr//792rdvn3r06GH+uVevXpIkW1tbffnllxlfLQAAAAAAeKwn6rrv6OioqKgoSZKLi4vCw8NT/GwN6LoPAAAAZE/ZsXMxXfczX07pup/mFv2Hu+Gn5WcAAAAAAPDsPVHXfQAAAAAAkDWleTK+Xbt2mWfcNwxDPXv2lGEYio6OTvbzkiVL9N5772VawQAAAAAA4NHSHPQvXLig5cuX64svvtC8efPMs+7Xrl3b/JjatWurTJkyGV8lAAAAAABIkzQF/SVLlqhLly7q0KGDEhMT1alTp8yuCwAAIFUm3+w3J1B2mPwJAGA90hT0DcPQ7Nmz1aNHD/3www8KCgpK08GnTp36VMUBAJDdZMd5aZmGBwAA65KmoN+xY0fzz05OTnJzc8u0ggAAAAAAwJNL8xj9JGfPntWYMWMyoxYAAAAAAPCU0ry8XpJhw4ZlRh0AAAAAACADpKlFf8SIEeafDcNIdj81+fLlU/v27eXh4fF01QEAAAAAgHRJU9CPiooy/2wymZLdT82+ffv03XffKTg4+Omqs5CAgAAFBASYlxAEAAAAACC7MBlG+ubatbW1/dcAfPv2bRUqVCjbB+WwsDC5ubkpNDRUrq6uli4HAJANMOt+5mN5PQBpkS1/Hyt7FW0aa+kK0i87/D7OiBya7jH6/3Tt2jUNGzZMf/31l3mbYRhK5/UDAAAAAACQAZ446N+8eVN9+/bVc889p0OHDunevXvmfXFxcerRo0dG1AcAAAAAANIh3cvrJbXUx8XFKSYmRn/88YcqVaqU7DFFixbV3LlzM6ZCAAAAAACQZmkO+ufOndO9e/fUr18/HTp0SJLk4+OjuLg48/0kzs7OqlChQsZWCgAAAAAA/lWag/7AgQN14MAB5c6dW+vWrZMkXbp0SSVLlkz2uEuXLql58+ZavXp1hhYKAAAAAAD+Xbq67n/zzTdq1qyZ+b69vb3Onz9vvh8fH69cuXIR8gEAAAAAsJB0TcZn+scaFand/+c2AAAAAADw7KSrRX/OnDnauHGj+X5CQoIGDBhgvp+0rN7HH3+sSZMmZVyVAAAAAAAgTdIc9N977z2dPn062bbRo0eneNyYMWOUK1eup68MAAAAAACkW5qDfocOHZLdNwxDPj4+CgwMzPCiAAAAAADAk0nzGP3KlSvLMAzz/cTERM2dOzdTigIAAAAAAE8mzUH/zz//TBb0JaW4DwAAAAAALCvNQf9Rs+m7urqmuBUuXFjjxo3LsCIBAAAAAEDapGvW/dRs27YtxbbVq1dr4sSJqU7WBwAAAAAAMs9TBX2TyaRq1aql2O7m5iY/Pz8ZhvHIngAAAAAAACDjpbnrfnrcv3+fkA8AAAAAgAWkOeinZ+K95557TqdPn36igjLD5MmT5eHhIS8vL+3du9fS5QAAAAAAkGnS3HV/3759srFJfl3gUeHfxcVFLi4uT1dZBjl9+rS+++47nTp1Sn/++ae6du2q4OBgS5cFAAAAAECmSFOL/urVq1W+fHlJUmRkpDp27Kjff/9diYmJmVrcPx09elRVq1bV7t27k203DEO+vr4qVqyYnJ2d1apVK926dUuStGbNGnXo0EFOTk56+eWXlZCQoMuXLz/TugEAAAAAeFbS1KK/YMEC9e7dW7NmzdIbb7yhQoUK6fXXX1erVq3UtGnTRz6vc+fOGVLkoUOH9MUXX2j9+vWKiopKsd/f318zZ87U/PnzVaBAAXXv3l1dunTRhg0bdOXKFVWvXt382BIlSujGjRvy8PDIkNoAAAAAAMhK0hT0V61apaVLl2rAgAF644039M0336hnz57q1q2bunXrphIlSqhMmTLJnmMymTIs6K9cuVIODg5av369GjRokGxfYmKi/P39NXLkSDVv3lySNHXqVDVt2lTnz59XbGxssiEHJpNJtra2GVIXAAAAAABZTZrH6Ldv3161atVSkyZN1KxZM61YsUJ79uzR4MGDNX/+fPn5+almzZqZUuT48eNlMpl04cKFFPuOHz+ukJCQZD0L6tatKxsbG+3fv19FihTR1atXzfuuXr2q4sWLZ0qdAAAA1iA7LpyUjnmjAcDqpWt5PQ8PD+3cuVMuLi7at2+fbG1tNWPGDH388ccKDAzMrBofu0zfuXPnJEmenp7mbY6OjnJ3d9eVK1fUtGlT/fDDD4qJidHvv/+u/Pnzq3DhwqkeKyYmRmFhYcluAAAAAABkJ2lu0U9SsGBBDR061DzZnSR99tln5p9jYmI0fvx4ff755xlT4b+4f/++bGxs5ODgkGy7k5OTYmJi9PLLL6tly5aqUKGCXFxctGjRokcea+LEifL19c3skgEAAAAAyDRpbtF/8803lZCQIEnav3+/1q5dm2z/pEmTNGTIENnb22vixImKiYnJ2EofwcHBQYmJiYqPj0+2PTo6Wk5OTpKkMWPG6MKFCzp+/LheeumlRx5r+PDhCg0NNd+YnR8AAAAAkN2kuUV/06ZNSkhISDGR3bVr19SuXTsdO3ZMGzZsMLeuG89ooFTSePsrV66odOnSkh70Krh161aKCQL/jYODQ4qeAQAAAAAAZCdpbtFPLbj/8ccfqlq1ql577TXZ2dmpVq1akh50m39WQb9q1apydHTU5s2bzdt27Nghk8mkOnXqPJMaAAAAAADIKtLcop/ahHilSpXS8uXL9dprr2n27NkyDEMmk0l2dnbPLOg7OjqqT58+Gj16tEqWLKk8efJo4MCB6tWrl/Lnz/9ExwwICFBAQIB5qAIAAAAAANlFmoP+P4P71atXVbBgQfMM9m5ubrpz544KFCig+Pj4x86Un9H8/PwUFRWltm3bytbWVp06dZK/v/8TH8/Hx0c+Pj4KCwuTm5tbBlYKAAAASCbf7LeGoTGGNQyB7CLNXff/Gdw3bdqkypUra+vWrZKkvHnz6u+//5YkxcbGphjLnxFKly4twzBUu3btZNsdHBwUGBio0NBQ3blzRzNnzmSsPQAAAAAgR0r38npJOnfurNdee01du3ZVo0aNZGNjo+vXr8vLy0txcXGysUnzNQQAAAAAAJBB0pzGS5YsmaxV387OTt26dVNwcLCcnJx05MgRBQcHKzIyUoZhyM7uia8hWFxAQIC8vLzk7e1t6VIAAAAAAEiXNKfx8+fPm38uXLiw7t+/L0nKkyePZs2apZdfflm1atXSb7/9pkqVKmV8pc8QY/QBAAAAANlVuprdP//8c7Vp00bt27fXpUuXdOnSJfO+unXrKiIiQsOGDdPnn3+e4YUCAAAAAIB/l6agHxoaqk6dOumvv/5Ss2bNJEmenp5ydnZONht/fHy83njjDb377ruZUy0AAAAAAHisNI3RDwwMVL58+XT48GFVqVJF0oPl9sLCwhQeHm6+nTx5Uvv379eUKVMytWgAAAAAAJC6NLXoDx8+PMW2t99+O8W2UqVKac2aNVq5cqViY2OVK1eup6/QAgICAhQQEKCEhARLlwIAAAAAQLqYjIf73iOZpMn4QkND5erqaulyAADZwEML1GQb2e2bgMk3+33Ixpjs9SFzHmc+zuPMly3PY2Wvok1jLV1B+mWH8zgjciiL3QMAAAAAYEUI+gAAAAAAWBGCPgAAAAAAVoSgDwAAAACAFSHopyIgIEBeXl7y9va2dCkAAGQ+kyl73QAAwGMR9FPh4+Oj4OBgBQUFWboUAAAAAADShaAPAAAAAIAVIegDAAAAAGBFCPoAAAAAAFgRgj4AAAAAAFaEoA8AAAAAgBUh6KeC5fUAAAAAANkVQT8VLK8HAAAAAMiuCPoAAAAAAFgRgj4AAAAAAFaEoA8AAAAAgBUh6AMAAAAAYEUI+gAAAAAAWBGCPgAAAAAAVoSgn4qAgAB5eXnJ29vb0qUAAAAAAJAuBP1U+Pj4KDg4WEFBQZYuBQAAAACAdCHoAwAAAABgRewsXQAAJDGZLF1B+hmGpSsAAAAAkqNFHwAAAAAAK0LQBwAAAADAihD0AQAAAACwIgR9AAAAAACsCEEfAAAAAAArwqz7AJCDmHyz39IGxhiWNgAAAEgPWvRTERAQIC8vL3l7e1u6FAAAAKSFyZS9bgCQiQj6qfDx8VFwcLCCgoIsXQoAAAAAAOlC0AcAAAAAwIoQ9AEAAAAAsCIEfQAAAAAArAhBHwAAAAAAK0LQBwAAAADAihD0AQAAAACwIgR9AAAAAACsCEEfAAAAAAArQtAHAAAAAMCKEPQBAAAAALAiBH0AAAAAAKwIQR8AAAAAACtC0AcAAAAAwIoQ9FMREBAgLy8veXt7W7oUAAAAAADShaCfCh8fHwUHBysoKMjSpQAAAAAAkC4EfQAAAAAArAhBHwAAAAAAK0LQBwAAAADAihD0AQAAAACwIgR9AAAAAACsCEEfAAAAAAArQtAHAAAAAMCKEPQBAAAAALAiBH0AAAAAAKwIQR8AAAAAACtC0AcAAAAAwIrYWboAILsw+ZosXUK6GWMMS5cAAAAA4BmjRR8AAAAAACtC0AcAAAAAwIoQ9AEAAAAAsCIEfQAAAAAArAiT8VkJU/abJ04G88QBAAAAQIbLMS36sbGxmjNnjjp06GDpUgAAAAAAyDQ5pkX/pZdeUvny5RUfH2/pUgAAAAAAyDRZskX/6NGjqlq1qnbv3p1su2EY8vX1VbFixeTs7KxWrVrp1q1baTrm3r179dFHH2VCtQAAAAAAZB1ZKugfOnRIbdu2Vc2aNXX48OEU+/39/TVz5kzNnTtXmzdv1qlTp9SlS5c0HTtv3rwZXC0AAAAAAFlPluq6v3LlSjk4OGj9+vVq0KBBsn2JiYny9/fXyJEj1bx5c0nS1KlT1bRpU50/f16enp7q2LGjzp49m+x5+/fvf2b1AwAAAABgaVkq6I8fP14mk0kXLlxIse/48eMKCQlR06ZNzdvq1q0rGxsb7d+/X56envr++++f6vVjYmIUExNjvh8WFvZUxwMAAAAA4FnLUl33TY9ZI+7cuXOSJE9PT/M2R0dHubu768qVKxny+hMnTpSbm5v55uHhkSHHBQAAAADgWclSQf9x7t+/LxsbGzk4OCTb7uTklKwV/mkMHz5coaGh5tvly5cz5LgAAAAAADwrWarr/uM4ODgoMTFR8fHxsrP7X9nR0dFycnJK0zHq1aunevXqPfY1/nkhAQAAAACA7CTbtOgXL15ckpJ104+JidGtW7dUpkwZS5UFAAAAAECWkm2CftWqVeXo6KjNmzebt+3YsUMmk0l16tTJ0NcKCAiQl5eXvL29M/S4AAAAAABktmzTdd/R0VF9+vTR6NGjVbJkSeXJk0cDBw5Ur169lD9//gx9LR8fH/n4+CgsLExubm4ZemwAAAAAADJTtgn6kuTn56eoqCi1bdtWtra26tSpk/z9/S1dFgAAAAAAWUaWDPqlS5eWYRgptjs4OCgwMFCBgYEWqAoAAAAAgKwv24zRBwAAAAAA/46gnwom4wMAAAAAZFcE/VT4+PgoODhYQUFBli4FAAAAAIB0IegDAAAAAGBFCPoAAAAAAFgRgj4AAAAAAFaEoJ8KJuMDAAAAAGRXBP1UMBkfAAAAACC7IugDAAAAAGBFCPoAAAAAAFgRgj4AAAAAAFaEoJ8KJuMDAAAAAGRXBP1UMBkfAAAAACC7IugDAAAAAGBFCPoAAAAAAFgRgj4AAAAAAFaEoA8AAAAAgBUh6AMAAAAAYEUI+qlgeT0AAAAAQHZF0E8Fy+sBSDOTKXvdAAAAYPUI+gAAAAAAWBGCPgAAAAAAVoSgDwAAAACAFSHoAwAAAABgRQj6AAAAAABYEYI+AAAAAABWhKCfioCAAHl5ecnb29vSpQAAAAAAkC4E/VT4+PgoODhYQUFBli4FAAAAAIB0IegDAAAAAGBFCPoAAAAAAFgRgj4AAAAAAFaEoA8AAAAAgBUh6AMAAAAAYEUI+gAAAAAAWBGCPgAAAAAAVoSgDwAAAACAFSHoAwAAAABgRQj6qQgICJCXl5e8vb0tXQoAAAAAAOlC0E+Fj4+PgoODFRQUZOlSAAAAAABIF4I+AAAAAABWhKAPAAAAAIAVIegDAAAAAGBFCPoAAAAAAFgRgj4AAAAAAFaEoA8AAAAAgBUh6AMAAAAAYEUI+gAAAAAAWBGCPgAAAAAAVoSgDwAAAACAFSHoAwAAAABgRQj6AAAAAABYEYJ+KgICAuTl5SVvb29LlwIAAAAAQLoQ9FPh4+Oj4OBgBQUFWboUAAAAAADShaAPAAAAAIAVIegDAAAAAGBFCPoAAAAAAFgRgj4AAAAAAFaEoA8AAAAAgBUh6AMAAAAAYEUI+gAAAAAAWBGCPgAAAAAAVoSgDwAAAACAFSHoAwAAAABgRQj6AAAAAABYEYI+AAAAAABWhKAPAAAAAIAVIegDAAAAAGBFCPoAAAAAAFgRgj4AAAAAAFaEoA8AAAAAgBWx+qCfkJCgQYMGqUKFCipfvrxWr15t6ZIAAAAAAMg0Vh/079+/r+rVq+vkyZPasGGDevToocTEREuXBQAAAABApshyQf/o0aOqWrWqdu/enWy7YRjy9fVVsWLF5OzsrFatWunWrVv/ejw3Nzd17NhRJpNJZcuWlSTFxsZmSu0AAAAAAFhalgn6hw4dUtu2bVWzZk0dPnw4xX5/f3/NnDlTc+fO1ebNm3Xq1Cl16dIlXa+xePFiVa1aVblz586osvE0TKbsdQMAAACAbMDO0gUkWblypRwcHLR+/Xo1aNAg2b7ExET5+/tr5MiRat68uSRp6tSpatq0qc6fPy9PT0917NhRZ8+eTfa8/fv3m3+eOnWqFi9erJ9//jnz3wwAAAAAABaSZYL++PHjZTKZdOHChRT7jh8/rpCQEDVt2tS8rW7durKxsdH+/fvl6emp77///pHH/uSTT3TlyhXt2rVLzs7OmVE+AAAAAABZQpYJ+qbHdI0+d+6cJMnT09O8zdHRUe7u7rpy5cpjjxscHKzdu3dr9+7dj30NSYqJiVFMTIz5flhYWFpKBwAAAAAgy8gyY/Qf5/79+7KxsZGDg0Oy7U5OTsmCeWqOHTumP//8U+XKlVPZsmVVtmxZbdu2LdXHTpw4UW5ubuabh4dHhr0HAAAAAACehSzTov84Dg4OSkxMVHx8vOzs/ldydHS0nJycHvvc9u3bq3379ml6neHDh2vw4MHm+2FhYYR9AAAAAEC2ki2CfvHixSVJV65cUenSpSU96GZ/69YtlSlTJsNex8HBIUWvAQAAAAAAspNs0XW/atWqcnR01ObNm83bduzYIZPJpDp16liwMgAAAAAAspZs0aLv6OioPn36aPTo0SpZsqTy5MmjgQMHqlevXsqfP3+Gv15AQIACAgKUkJCQ4ccGAAAAACAzZYugL0l+fn6KiopS27ZtZWtrq06dOsnf3z9TXsvHx0c+Pj4KCwuTm5tbprwGAAAAAACZIcsF/dKlS8swjBTbHRwcFBgYqMDAQAtUBQAAAABA9pAtxugDAAAAAIC0IeinIiAgQF5eXvL29rZ0KQAAAAAApAtBPxU+Pj4KDg5WUFCQpUsBAAAAACBdCPoAAAAAAFgRgj4AAAAAAFaEoA8AAAAAgBUh6KeCyfgAAAAAANkVQT8VTMYHAAAAAMiuCPoAAAAAAFgRO0sXkJUZhiFJCgsLs3Al1inbfarRli4g/Th3M1+2+4Q5j5GKbPcJcx4jFdnuE+Y8Riqy3SfMeZwpkmpMyqNPwmQ8zbOt3JUrV+Th4WHpMgAAAAAAOczly5dVokSJJ3ouQf8xEhMTde3aNbm4uMhkMlm6HKRBWFiYPDw8dPnyZbm6ulq6HOCJcB7DGnAewxpwHsMacB5nP4ZhKDw8XMWKFZONzZONtqfr/mPY2Ng88RUUWJarqyu/yJDtcR7DGnAewxpwHsMacB5nL25ubk/1fCbjAwAAAADAihD0AQAAAACwIgR9WBUHBweNGTNGDg4Oli4FeGKcx7AGnMewBpzHsAacxzkTk/EBAAAAAGBFaNEHAAAAAMCKEPQBAAAAALAiBH0AAAAAAKwIQR8AAAAAACtC0AcAAAAAwIoQ9AEAAAAAsCIEfQAAAAAALCQ+Pj7Dj0nQBwBYRNIftYSEBAtXguzswIED+vnnn/Xnn38qNDTU0uUAT+Ts2bOWLgGAhRiGITs7O4WFhenTTz/NsL9lBH0gC3vU1T3DMJ5xJUDGSkhIkJ2dncLDw9WsWTOtWLFCUVFRli4L2cxnn32m1q1bq3PnzmrQoIHGjh2ra9euWbosIF327Nmjd999V7/99pulSwHwjCUkJMhkMik+Pl5DhgzRrl27MuzYBH0gi0pMTJSdnZ3u37+vPn36aODAgQoICJAkmUwmwj6yNVtbW0VEROiVV15RbGysXFxc5ODgYOmykI0EBAToP//5j7766isdPXpUgwYN0vr167Vt2zZJD36HAllZ0t/x8+fP6/Tp0xozZox++eUXC1cF4FmytbVVZGSkxo8fr3v37mnYsGFyc3PLkO/5JoO0AGRZUVFRqlatmuzs7GQymXTt2jW1bNlS8+bNk/TgS4LJZLJwlcDjTZo0SfXr15e3t7ek/523/v7+Wr16tTZs2CA3N7dk+4DHiY+PV48ePVS+fHkNHz7cvL1FixYKDw83h30gq7t//76aN28uV1dXOTg46MqVKxo7dqwaN25s6dIAPCPHjh3Ta6+9pvv378vPz0+ffPKJpKf/TkSLPpDFPDxe+fz583rppZf0+++/a/369ZowYYKWLl2qrl27SqJlH1nfwYMHtW/fPpUrV868LemP1qVLl5QrVy45Ozun2BcXF/dsC0W2YmdnJw8PD1WqVEnS/35vvvrqq7p7964khjghewgLC9ONGzfUu3dv9ezZU66urho7dqw2bdpk6dIAZJJ/zk1UuXJlbd26VWXLltWPP/5ovlj9tN/z7Z6qSgAZKiEhQba2toqKitKePXu0c+dO84QcHh4eat++vezs7DRw4EDZ2trqP//5D62fyNKqVaumpUuXmrvlP3x1OioqSpGRkbKze/CnKOn8P3/+vM6ePauGDRtarG5kfd27d1fJkiUl/e8CUa5cueTq6qrExETz8KckiYmJsrGhfQNZS7FixTRz5kw1atRI0oPfkVOnTpWvr68kqUmTJpYsD0AGi4+Pl52dnSIjI/Xzzz/r7t27qlWrlqpVq6Zly5bp3Xff1ZQpU2Rra6s6deqYw/6TfN/nLx6QRRiGYR63XKlSJbVt21azZs3SX3/9pXPnzskwDLm6uqpNmzaaNWuWFi1apDZt2li6bOCRkq5C58qVS9KDYP/xxx9r3759kqQePXroxIkT5q7Xtra2kqRdu3Zp1KhRunLligWqRnaRFPKl/wX9Q4cOqVSpUrKxsTGHfF9fX/3++++EfGQ5SfNIPBzyGzVqpCFDhsjNzU2+vr607ANWIOn7UNLs+uHh4XrllVc0evRoBQQEqFq1avr888/14osv6vvvv9fJkyc1ZcoU7dixQ5KeuFGPv3pAFpA042ZCQoICAgJUu3ZtrV27VvPmzVNcXJwGDhyoS5cuSZJcXFzUunVrzZgxQ6+//rqFKwdSSvqDljSLftLV6IMHD+qHH37QzJkzdfjwYb3yyisaNmyY5s6dq06dOumbb77R559/rv79+6tVq1YqUaKEJd8GsqCkc+tRK5LcunVL7u7u5vuffvqpfH195ejo+EzqA9Ii6Tz+54SRSfcbNmxoDvsTJkzQ+vXrn3mNAJ7e7NmzJf0vqJtMJiUmJmrAgAEqVaqUDhw4oKNHj6pAgQLavXu3bt++rZdfflnff/+9Dh8+rNGjRz/VSjIEfSALSOquP2DAAO3Zs0cNGzZU7dq19e6772rDhg3666+/9OGHHyYL+927d1efPn0kMRYVWUvSMjHdunUzLxPTu3dvvfrqq5o0aZLOnDkjPz8/nTx5UiNGjNDMmTN15MgRjRs3TmvXrtW4ceP08ccfS+Lcxv8kdV3cvn27hg0bphEjRuj48eNKTEyUyWRSTEyM4uPjVaZMGUnS4MGDNWPGDB04cECVK1e2cPXAA487j21tbc0XsRo2bKhhw4YpISFBs2bNUkREhIUrB5AeW7du1fLly3X79u1k200mky5evKg333xTzs7Oat26tZydnTVr1iwVKFDAvCLR999/rw8++EDFihV74hqYdR/IIpLG6Jw8eVJDhgyRv7+/ed/x48f11ltvqXTp0po/f748PT0tWCnw786dO6dhw4YpKChI0dHRev311/X999/L1tZWixcv1tSpU1WmTBmNGTPGPKHa7du3ZWNjo3z58kliTDVSWrt2rTp06KDatWvr4MGDKlOmjAYPHqw2bdrI1tZWvXr1UnBwsJ5//nktWrRIe/bsUdWqVS1dNpDMo87jtm3bysbGxjyGV5J27NihMmXKyMPDw8JVA0grPz8/OTo6qm/fvimWDo6MjFSXLl3UokULbdy4UX/88Yc2btyo5557TgcOHNDXX3+tKVOmyMXFxfycJ5593wBgEfHx8Sm2hYSEGPXr1zcqVqxoLF++3EhISDDvO3r0qOHk5GSsXLnyWZYJpFtiYqJhGIaxfft2w8HBwXBycjLWrl2b7DGLFi0yqlSpYrRr187Yt29fiucm/RdIcvXqVeOVV14x/P39DcMwjOPHjxsmk8moUaOG8cMPPxiJiYnGhg0bjPz58xsuLi7GwYMHLVwxkNLjzuOlS5ea/+7HxcVZskwAT2jJkiVGwYIFjWPHjhkxMTGGYRhGRESE4evra37MiBEjDJPJZJQsWdK4ePGiefuiRYuMt956y7h27VqG1MKs+4AFJM0uHhERofnz5+vevXvy8vJSq1attHLlSjVv3lxffvmlJOmdd96RjY2NKleurMuXLyt//vwWrh54NOP/X3WOiYnRvHnz1Lx5cyUmJqpfv36yt7fXG2+8IUnq1KmTbGxs5OfnJ19fXy1cuFDu7u7JxrEh5/ryyy9VunRptWvXzrwtIiJCxYsXV4cOHXT9+nX17t1bffr00YkTJzRy5Ejlzp1bLVu21IQJE1S/fn1VqFDBgu8ASP95PGrUKJlMJrVu3TrZihEAso/4+Hg5OjrKxcVFuXLlUmxsrH766Sf5+/vr6tWrmjt3riZMmKCrV69q5cqV2rdvn4KDg/X333/ro48+0tixY1W0aNGMKSZDLhcASLfw8HCjYsWKRuXKlY3GjRsbtra2RpcuXYzIyEgjJCTEePXVV40aNWoYP/74Y7KWfcMwUtwHspL4+Hijb9++RqdOnQzDMIw//vjDaNu2reHh4WFs3LjRMIz/ncPLly83vv/+e4vViqzn/Pnzhp2dnWFnZ2esWbMm2b7t27cbhmEY48ePN3r37m0YhmFcuHDBcHNzMypWrGisW7fumdcLpOZJz+P/+7//M5YvX/7M6wWQMbZs2WJUqlTJGDdunHHu3DmjX79+xo4dO4ypU6capUuXNrp3724YxoNeO127djXc3d2NvHnzGiVLljT8/PzMx8mIno0MfgQswDAMjRkzRiVLltThw4e1adMmVa5cWWfOnFFoaKgKFCigNWvWKD4+XqNGjdK5c+eSPZ9xy8gqjFSmebG1tVVMTIyCg4MlSd7e3ho0aJBq1qypnj176scff9S6devUv39/tWzZUu+9994jj4Wcp3Tp0mrVqpXs7OzUunVrLVmyxLyvbt26MgxD27dvV/Xq1SU9mNuhbt26KlWqlF544QVLlQ0k86TncfHixc3bAGQPP/74o3lJ4Lp166pdu3ZatmyZKlWqpOPHj6tOnTp6//331a9fP/3666/q1auX7Ozs9N1332nDhg3avn271q1bZ15uOGmS2adFWgCekYdDjMlk0qVLl1StWjXZ2NioVatWioiI0IIFC1SkSBFdv35dBQsW1Pr16/X555+rbNmyFqwcSOns2bOSHpzLcXFxKfZPmzZNf//9t8aOHStJqlGjhoYOHapXX31V77//vtq0aSMPD49k3VPpro+EhARJUqVKldS+fXv5+vqqc+fO+v77782PSVq2ccWKFTp//rwWL14sDw8PrVq1iolKkSU87XlcunRpS5QN4An88ssv8vPzU8GCBSVJdnZ26t+/v06cOCEnJydVqVJFd+/eVcGCBdWlSxcNGDBAmzZtUs+ePSVJ1atX14svvmheHcYwjAxr0GPWfSCTXbt2TWvXrlXv3r0VFRVlXj6vb9++Kly4sE6dOqWgoCDzjJt//fWXxo4dq8mTJyebZdd40hk3gQw2efJkLVu2TF988YVef/11SQ/GnV68eFFly5ZVrly5FB8fr8mTJ+v333/XnDlzVLhwYUnSjRs3dO7cOUVGRqphw4aSOLeR0s6dOzVo0CCtXLlSX375pebNm6c1a9Zo+/btKlSokIoUKaKRI0cqPDxcDg4O+vnnn1WlShVLlw0kw3kM5Azh4eHmWfITExN16NAhjRs3Ts8995y2bdumhg0b6tNPP1XBggUVEhKiRYsWyd/fX/Xr1092ATCjMdMHkMkOHz6svn376vTp0/rpp59Ur149NWzYUPXr11e7du2UP39+HTx4UKVKlZIk/fnnn7p586a5RSAJQQhZRd26dfX1119r8uTJkqTXX39d7dq10x9//KG33npLn3/+uYoVK6a3335bkydP1rZt29S+fXtJUpEiRVSkSBHzsVhCD0mSLvgYhiF3d3eFhobKZDIpMDBQrq6uat68ufLkyaP//ve/yps3r1555RWdOXNGlSpVYukxZBmcx0DOkfT/e1LIj4iI0A8//KBu3bpp7dq1kqRhw4bp119/lSRz2O/UqZMiIyNVrFixTK2Pb1dAJmvWrJn8/Pw0Y8YMOTk5aeHChZKkNm3ayM/PT3fv3tXChQu1YMECBQYGqkePHnrrrbfouocsKTExUd7e3lq+fLnO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NVFRUerUqZNy5cqlOnXqJPuD1axZM+3du1cLFixQixYtdPfuXcXGxqpw4cKSuIAFafbs2dq1a5fOnDmjPn36qHPnzuahHA+vPfxwSJo+fbo8PT353Ygsg/MYQEREhKpWraqiRYuqcuXK2rVrl8LDw7Vq1Spdv35d/v7+2rFjh9zc3OTg4KC+fftqxIgRli47GYI+kAbfffedli1bpiVLlihv3rzmdTST3L59W6dPn9bHH38se3t72dnZacuWLZo+fboGDBhgwcqB9KtcubL+/PNPDR06VF9++WWyL60tWrTQb7/9pm+//VZt2rQxB3u+3GLIkCFasmSJmjRposjISP3000+aMWOG+vfvb37MwxeD5s2bp4ULF8rOzk7z589XqVKlLFU6YMZ5DOQcqX13SWrNnzZtmpYvX669e/dKklq1aqXjx49r3759cnd3l/RgPg5HR0c5OjqqatWqkrJWowez7gNpcODAAd29e9c8w6adnZ1u3bqlc+fO6e7duypatKhq1qypXbt2admyZTp9+rR27Nih77//Xi1btlTJkiUt/A6A1KU2u/6xY8fUoEEDfffdd6pfv74aNmwoe3t7SdLatWtVp04dhYaGJvtDRsjP2YYOHar58+dr3bp1qlmzpkwmk8aNG6fp06frvffeU758+cyTMyZ9CerRo4eio6O1bt26LPOlCDkb5zGQcyT9P/z3338rIiJC4eHhevHFF83fiSIjI80X7t555x0FBwdr06ZNcnd31+HDh1WlShU1bNgw1WNmFbToA2mwbt06vf322/rkk0/k4OCgU6dO6eeff5YkRUdHy9nZWcOGDUvWZWfTpk3q2bOnpk+frlatWlmqdOCRkkJ+RESE5syZIxcXF3l6epon1Xv11Vd1+fJlff3118nCPvCwXbt2qW7duho1apR8fX3NXZsXLlyotWvX6qeffjI/Nqn15OHuz/fu3WMlElgc5zGQcyQF8r1796pfv366c+eObt++rb59++rLL7+UJH3xxRdavXq1SpUqpWPHjmnNmjUqX768bt68qeHDh6tHjx6qUaOGhd/J42WdSw5AFpR0Hax27dry8/PT/PnzNWvWLF24cEHDhg3TihUrtGvXLvXv318LFy7UiRMnZBiGDMNQkyZN9O6772rWrFmKjo5mln1kKYZhmCea8fb21pw5czRx4kQNGDBA3377rSRp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kyc0bdoUgLZt2xIREcHWrVtxc3Pj/v37lCtXjnLlysU7h0K+OIquOhERERERkV8xmUwEBwfTp08fAMxmM5cuXaJr166cPn2aNWvW4O3tzYULF5g3bx4PHz585RwK+eIoatEXERERERH5f3Gz69tsNgYMGMC5c+cICQmhc+fO9O7dm+joaM6fP0/mzJkBOHDgALt376Zbt24OrlzkF3rEJCIiIiIi8v/iZtcfNGgQbm5ufPzxx6RJk4Y33niDli1bkiFDBqZOncr27duZNWsWQ4YMoVmzZpphXxIUTcYnIiIiIiLykqtXr1KiRAkiIiKYN28ePXv2BOD69essW7aM+fPnExISQvr06enZsyf+/v4A2Gw2DAaDI0sXART0RUREREQkmYoL5nHd9V927tw5GjdujKenJ9988w358uUDXkywZ7FYuHr1KilSpMDLy8u+XWPyJaFQ0BcRERERkWTl008/pUSJEpQvX56YmBhcXFyIjIxk7dq1ZM+endy5c5MzZ07OnDlDnTp1KFSoEEuWLCF37ty/eT615EtCo6AvIiIiIiLJxokTJ2jXrh1ZsmRhypQplCpViuDgYHx9fXnw4AERERE0bNiQwYMH4+vry+nTp6lbty5Fixbl008//d2wL5KQqG+JiIiIiIgkeVarFYBSpUoxe/ZsLBYLw4cP5/jx46xYsYLChQuza9cuJk2axP379xkxYgR79uyhWLFibN68mePHj9OiRQvCwsIc/E5E/pha9EVEREREJEmLGz//448/MmTIEM6cOcOKFSuYO3cu7u7upE2blmbNmtG6dWsA1q5dy8yZMzGbzUyYMIHKlStz8uRJjh07RteuXR38bkT+mFr0RUREREQkyYoL+bt376ZZs2bUrl0bg8FA69at6d27N9HR0WzZsiXeRHqNGzdm4MCBuLm5MXz4cHbs2EHJkiXtIV9tpZLQKeiLiIiIiEiSFBfyjx49Sr169Rg5ciQzZswgOjoagDZt2tC3b19y5cpFYGAgx44dsx/bqFEj+vTpg9Vq5enTp/HOq4n3JKFT130REREREUly4kL+nj17qF27NjExMdSpU4dNmzYBEBUVhZubGwCrVq1i5syZODs7M3nyZEqVKmU/z/Xr18mTJ49D3oPI36UWfRERERERSXKcnJw4cOAA1apVw9/fn40bN/LTTz9Ro0YNANzc3Owt+35+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WLZs2ULevHkV8kX+AgV9ERERERH5VxgMBqKjo/n888+JjIwEYOPGjQBkyJCBkydP0qZNG06fPs26devw9vbm3LlzzJo1i0ePHpE3b15q1qwJvJh4T0T+HAV9ERERERH513z//fe8++67jBo1irRp07JlyxYAatSowalTp9i2bRtBQUHkz58fgJ9++ont27fz9OnTeOfR7Poif54m4xMRERERkX/ViBEjmDNnDtmyZWP9+vXky5ePqKgoRo4cyZYtWyhatChNmzbl6tWrfPTRR4wdO5bBgwc7umyRREtBX0REREREXruX17ivXLkyV65cwdnZmY4dO9KtWze8vLyIjIxk5syZrFu3jmPHjpE3b146duzI8OHDAS2hJ/J3KeiLiIiIiMhrZbFYMJlMREdHc+PGDdzd3cmZMyfjx4/n008/pW3btvTs2RMvLy+ioqJwcXHh7t27ODs7kyVLFiD+gwIR+Wu0vJ6IiIiIiLw2sbGxmEwmQkJCqF69OuXLl6d3797kzJmTUaNGERsby+LFizGZTLRv357g4GDCwsJ488037a33NptNIV/kH1DQFxERERGR18bJyYno6Gjq1q1LtmzZGDJkCLlz57a/PmbMGKxWK59++ikrV67k0qVLLF68OF4XfXXXF/lnFPRFREREROQfs1qtGI1GAC5duoTFYmHSpEn4+PgAcOrUKSIjI6lQoQIffPABBQoU4P79+2TJkoV27do5snSRJEdj9EVERERE5LWIiIjg5s2buLq6ki9fPmbOnMnNmze5fv06q1evJnPmzNSvX5/Fixe/cqzG5Iu8Pgr6IiIiIiLyj9lsNgYMGMDRo0c5cOAAAwYMYM2aNaROnZq3336bMmXKsHfvXjZu3MjWrVvx9PR0dMkiSZa67ouIiIiIyD9mMBgoWrQomzdv5ubNm8ycOZP+/fvj7e1tb6m/cuUKHh4e9i7+IvLvUIu+iIiIiIj8obg17X/++Wfc3NxImTLlb+5Xrlw5cubMyXfffWffdvz4cY4fP46/vz9jxoxhwIAB/1XZIsmSBsGIiIiIiMgfMhgM3Lhxg0KFCvHVV18BLybgW7t2LT///LN9vw8++ICHDx9y6NAhAMxmMz/99BOBgYG8++679pCv9kaRf49a9EVERERE5E/z8/Njx44dTJ06lR9//JEtW7aQN29eJk6ciK+vL1arlTp16lCj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FfuDCxEREXlBLfoiIiLJyIULF3j48CHZs2dn6tSpDBgwAJvNRmBgIGfOnIn3z+TJkwHYt28fI0aMYNasWb973iZNmlC5cmWmTp1K6dKlAewhPzQ0lJkzZ1K1alXc3NyYPXs2R48efSXkv2zhwoX2GfgPHjxIypQpKVOmDPv377fv88477/DFF1+8jj+LiIhIkqJZ90VERJKRDh06ULx4cRYtWsTWrVvx8PBg2LBhrFmzhrRp0/L48WNcXFxImzYtoaGh1K5dm/nz53Px4kVKlChhP09ERAT9+vWjb9++lClThkOHDhESEkKWLFkoVqwYFouF5cuXExQUxKZNm4iKisJoNP5uXSaTiaioKOBFr4DixYsTFhbGokWL7GP7Bw0axI0bN3j77bepV68e2bNnp23btly7do1UqVL96387ERGRxEJBX0REJBl55513mDt3Lm+88QZbt24lR44cxMbGYjAYMBgM9OrVi+rVq9O6dWtsNhs2mw0nJyd69uzJ8uXL450rLCwMNze3Vybx27p1K2XLlqV///7kzp0bg8HADz/8wM6dO3+zpjt37pAvXz570B84cCBWq5V169Zx8OBBXF1d6dmzJz4+PkyYMIE2bdpQr149OnXqRPny5WnVqhXDhg37V/5eIiIiiZGCvoiISDISFRWFm5sbBQsWZOvWrXz66afxur/fvHkTk8lE9uzZ7dsGDRrEoEGDXjlX2bJlmThxIrVq1fqfvzMoKIjZs2f/qaD/7NkzvL29OX36NJUqVeLgwYNER0dToEABLl26RK5cueIF/WXLljF8+HBu3LjxytJ9IiIiyZXG6IuIiCQjbm5u8X4eN24cN27c4Pr163Tq1InGjRtTrVo1+vTpw/Xr17lx48Zvhvx/i6enJ6tXr473oGHz5s00b96cXLlyvbJ/y5YtyZ49O5cvX/7PahQREUnoNOu+iIhIMvb8+XM2btzIJ598gqenJ99++y0Gg4G3336b1atX069fPyZMmMC9e/deOTYsLIymTZu+0nUfYPr06XTu3Nn+8549e353HP2vOxdWq1Yt3s/du3ena9euPHv2DHd3dx48eICLiwsAzs7OHD58+C+/bxERkaRMQV9ERCQZq1u3LmnTpuW9996jSZMm9u3r169n+fLlTJ8+nY8//piGDRv+o99TpUqVP+y6/784OTnRsGFD9u/fT+7cuV95GCAiIiK/0Bh9ERGRZMxms2EwGBxdxp9mNps1Fl9EROQPKOiLiIiIiIiIJCGajE9EREREREQkCVHQFxEREREREUlCFPRFREREREREkhAFfREREREREZEkREFfREREREREJAlR0BcRERERERFJQhT0RURERERERJIQBX0RERERERGRJERBX0RERERERCQJUdAXERERERERSUL+D9G0cgI/VJUVAAAAAElFTkSuQmCC"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 30
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-15T06:29:58.222688Z",
     "start_time": "2024-05-15T06:29:58.209473Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 应用样式到 DataFrame\n",
    "styled_df_top_5 = df_top_5.style.apply(highlight_col, subset=[\"Normal时间\", \"Dymola时间\", \"Onestep时间\"], axis=1)\n",
    "styled_df_top_5 = styled_df_top_5.set_properties(**{'text-align': 'center'})\n",
    "styled_df_top_5.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])\n",
    "\n",
    "# 打印经过样式处理的 DataFrame\n",
    "styled_df_top_5"
   ],
   "id": "e26ed267e13e2fca",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x21623aa9450>"
      ],
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_74cdb th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_74cdb_row0_col0, #T_74cdb_row0_col1, #T_74cdb_row0_col2, #T_74cdb_row1_col0, #T_74cdb_row1_col2, #T_74cdb_row1_col3, #T_74cdb_row2_col0, #T_74cdb_row2_col1, #T_74cdb_row2_col2, #T_74cdb_row3_col0, #T_74cdb_row3_col2, #T_74cdb_row3_col3, #T_74cdb_row4_col0, #T_74cdb_row4_col2, #T_74cdb_row4_col3 {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_74cdb_row0_col3, #T_74cdb_row1_col1, #T_74cdb_row2_col3, #T_74cdb_row3_col1, #T_74cdb_row4_col1 {\n",
       "  background-color: yellow;\n",
       "  text-align: center;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_74cdb\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_74cdb_level0_col0\" class=\"col_heading level0 col0\" >简化模型名称</th>\n",
       "      <th id=\"T_74cdb_level0_col1\" class=\"col_heading level0 col1\" >Normal时间</th>\n",
       "      <th id=\"T_74cdb_level0_col2\" class=\"col_heading level0 col2\" >Dymola时间</th>\n",
       "      <th id=\"T_74cdb_level0_col3\" class=\"col_heading level0 col3\" >Onestep时间</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_74cdb_level0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
       "      <td id=\"T_74cdb_row0_col0\" class=\"data row0 col0\" >Examples.HeatingSystem</td>\n",
       "      <td id=\"T_74cdb_row0_col1\" class=\"data row0 col1\" >0.121000</td>\n",
       "      <td id=\"T_74cdb_row0_col2\" class=\"data row0 col2\" >0.011000</td>\n",
       "      <td id=\"T_74cdb_row0_col3\" class=\"data row0 col3\" >0.140000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_74cdb_level0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
       "      <td id=\"T_74cdb_row1_col0\" class=\"data row1 col0\" >Loops.PlanarLoops_analytic</td>\n",
       "      <td id=\"T_74cdb_row1_col1\" class=\"data row1 col1\" >0.366000</td>\n",
       "      <td id=\"T_74cdb_row1_col2\" class=\"data row1 col2\" >0.049000</td>\n",
       "      <td id=\"T_74cdb_row1_col3\" class=\"data row1 col3\" >0.313000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_74cdb_level0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
       "      <td id=\"T_74cdb_row2_col0\" class=\"data row2 col0\" >R134a.R134a2</td>\n",
       "      <td id=\"T_74cdb_row2_col1\" class=\"data row2 col1\" >2.285000</td>\n",
       "      <td id=\"T_74cdb_row2_col2\" class=\"data row2 col2\" >0.599000</td>\n",
       "      <td id=\"T_74cdb_row2_col3\" class=\"data row2 col3\" >2.314000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_74cdb_level0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
       "      <td id=\"T_74cdb_row3_col0\" class=\"data row3 col0\" >R134a.R134a1</td>\n",
       "      <td id=\"T_74cdb_row3_col1\" class=\"data row3 col1\" >1.062000</td>\n",
       "      <td id=\"T_74cdb_row3_col2\" class=\"data row3 col2\" >0.303000</td>\n",
       "      <td id=\"T_74cdb_row3_col3\" class=\"data row3 col3\" >0.877000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_74cdb_level0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
       "      <td id=\"T_74cdb_row4_col0\" class=\"data row4 col0\" >Hysteresis.ThreePhaseTransformerWithRectifier</td>\n",
       "      <td id=\"T_74cdb_row4_col1\" class=\"data row4 col1\" >1048.296000</td>\n",
       "      <td id=\"T_74cdb_row4_col2\" class=\"data row4 col2\" >336.542000</td>\n",
       "      <td id=\"T_74cdb_row4_col3\" class=\"data row4 col3\" >789.614000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 47
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "## 2.2 对比normal模式，比onestep运行慢的模型，具体时间如下",
   "id": "9de8c6f26d418c8"
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-15T06:17:46.574505Z",
     "start_time": "2024-05-15T06:17:46.551496Z"
    }
   },
   "cell_type": "code",
   "source": [
    "import pandas as pd\n",
    "\n",
    "# 假设 slower_than_onestep 是之前得到的比Onestep慢的模型名称列表\n",
    "# 这里我们需要从三个字典中获取对应的运行时间数据\n",
    "data_onestep = []\n",
    "for model_name in slower_than_onestep:\n",
    "    normal_time = zq_dict.get(model_name, float('nan'))\n",
    "    dymola_time = dymola_dict.get(model_name, float('nan'))\n",
    "    onestep_time = zq_n_dict.get(model_name, float('nan'))\n",
    "    data_onestep.append([model_name, normal_time, dymola_time, onestep_time])\n",
    "\n",
    "# 转换为 DataFrame\n",
    "df_onestep = pd.DataFrame(data_onestep, columns=[\"模型名称\", \"Normal 运行时间 (s)\", \"Dymola 运行时间 (s)\", \"Onestep 运行时间 (s)\"])\n",
    "\n",
    "# 使用 style 来美化显示\n",
    "def highlight_col(x):\n",
    "    # 高亮显示最大值\n",
    "    return ['background-color: yellow' if v == x.max() else '' for v in x]\n",
    "\n",
    "# 显示更新后的 DataFrame\n",
    "styled_df_onestep = df_onestep.style.apply(highlight_col, subset=[\"Normal 运行时间 (s)\", \"Dymola 运行时间 (s)\", \"Onestep 运行时间 (s)\"], axis=1)\n",
    "styled_df_onestep = styled_df_onestep.set_properties(**{'text-align': 'center'})\n",
    "styled_df_onestep.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])\n",
    "\n",
    "styled_df_onestep\n"
   ],
   "id": "a52e0c737c6ecc57",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x21623aa8100>"
      ],
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_62140 th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_62140_row0_col0, #T_62140_row0_col2, #T_62140_row0_col3, #T_62140_row1_col0, #T_62140_row1_col2, #T_62140_row1_col3, #T_62140_row2_col0, #T_62140_row2_col2, #T_62140_row2_col3, #T_62140_row3_col0, #T_62140_row3_col2, #T_62140_row3_col3, #T_62140_row4_col0, #T_62140_row4_col1, #T_62140_row4_col3, #T_62140_row5_col0, #T_62140_row5_col2, #T_62140_row5_col3, #T_62140_row6_col0, #T_62140_row6_col2, #T_62140_row6_col3, #T_62140_row7_col0, #T_62140_row7_col2, #T_62140_row7_col3, #T_62140_row8_col0, #T_62140_row8_col2, #T_62140_row8_col3, #T_62140_row9_col0, #T_62140_row9_col1, #T_62140_row9_col3, #T_62140_row10_col0, #T_62140_row10_col1, #T_62140_row10_col3, #T_62140_row11_col0, #T_62140_row11_col1, #T_62140_row11_col3, #T_62140_row12_col0, #T_62140_row12_col2, #T_62140_row12_col3, #T_62140_row13_col0, #T_62140_row13_col1, #T_62140_row13_col3, #T_62140_row14_col0, #T_62140_row14_col2, #T_62140_row14_col3, #T_62140_row15_col0, #T_62140_row15_col2, #T_62140_row15_col3, #T_62140_row16_col0, #T_62140_row16_col1, #T_62140_row16_col3, #T_62140_row17_col0, #T_62140_row17_col2, #T_62140_row17_col3, #T_62140_row18_col0, #T_62140_row18_col2, #T_62140_row18_col3, #T_62140_row19_col0, #T_62140_row19_col1, #T_62140_row19_col3, #T_62140_row20_col0, #T_62140_row20_col1, #T_62140_row20_col3, #T_62140_row21_col0, #T_62140_row21_col1, #T_62140_row21_col3, #T_62140_row22_col0, #T_62140_row22_col2, #T_62140_row22_col3, #T_62140_row23_col0, #T_62140_row23_col3, #T_62140_row24_col0, #T_62140_row24_col2, #T_62140_row24_col3, #T_62140_row25_col0, #T_62140_row25_col1, #T_62140_row25_col3, #T_62140_row26_col0, #T_62140_row26_col2, #T_62140_row26_col3, #T_62140_row27_col0, #T_62140_row27_col1, #T_62140_row27_col3, #T_62140_row28_col0, #T_62140_row28_col2, #T_62140_row28_col3, #T_62140_row29_col0, #T_62140_row29_col2, #T_62140_row29_col3, #T_62140_row30_col0, #T_62140_row30_col1, #T_62140_row30_col3, #T_62140_row31_col0, #T_62140_row31_col2, #T_62140_row31_col3, #T_62140_row32_col0, #T_62140_row32_col1, #T_62140_row32_col3, #T_62140_row33_col0, #T_62140_row33_col3, #T_62140_row34_col0, #T_62140_row34_col2, #T_62140_row34_col3, #T_62140_row35_col0, #T_62140_row35_col1, #T_62140_row35_col3, #T_62140_row36_col0, #T_62140_row36_col1, #T_62140_row36_col3, #T_62140_row37_col0, #T_62140_row37_col2, #T_62140_row37_col3, #T_62140_row38_col0, #T_62140_row38_col1, #T_62140_row38_col3, #T_62140_row39_col0, #T_62140_row39_col2, #T_62140_row39_col3, #T_62140_row40_col0, #T_62140_row40_col2, #T_62140_row40_col3, #T_62140_row41_col0, #T_62140_row41_col1, #T_62140_row41_col3, #T_62140_row42_col0, #T_62140_row42_col1, #T_62140_row42_col3, #T_62140_row43_col0, #T_62140_row43_col1, #T_62140_row43_col3 {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_62140_row0_col1, #T_62140_row1_col1, #T_62140_row2_col1, #T_62140_row3_col1, #T_62140_row4_col2, #T_62140_row5_col1, #T_62140_row6_col1, #T_62140_row7_col1, #T_62140_row8_col1, #T_62140_row9_col2, #T_62140_row10_col2, #T_62140_row11_col2, #T_62140_row12_col1, #T_62140_row13_col2, #T_62140_row14_col1, #T_62140_row15_col1, #T_62140_row16_col2, #T_62140_row17_col1, #T_62140_row18_col1, #T_62140_row19_col2, #T_62140_row20_col2, #T_62140_row21_col2, #T_62140_row22_col1, #T_62140_row23_col1, #T_62140_row23_col2, #T_62140_row24_col1, #T_62140_row25_col2, #T_62140_row26_col1, #T_62140_row27_col2, #T_62140_row28_col1, #T_62140_row29_col1, #T_62140_row30_col2, #T_62140_row31_col1, #T_62140_row32_col2, #T_62140_row33_col1, #T_62140_row33_col2, #T_62140_row34_col1, #T_62140_row35_col2, #T_62140_row36_col2, #T_62140_row37_col1, #T_62140_row38_col2, #T_62140_row39_col1, #T_62140_row40_col1, #T_62140_row41_col2, #T_62140_row42_col2, #T_62140_row43_col2 {\n",
       "  background-color: yellow;\n",
       "  text-align: center;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_62140\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_62140_level0_col0\" class=\"col_heading level0 col0\" >模型名称</th>\n",
       "      <th id=\"T_62140_level0_col1\" class=\"col_heading level0 col1\" >Normal 运行时间 (s)</th>\n",
       "      <th id=\"T_62140_level0_col2\" class=\"col_heading level0 col2\" >Dymola 运行时间 (s)</th>\n",
       "      <th id=\"T_62140_level0_col3\" class=\"col_heading level0 col3\" >Onestep 运行时间 (s)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
       "      <td id=\"T_62140_row0_col0\" class=\"data row0 col0\" >Modelica.Mechanics.MultiBody.Examples.Loops.PlanarLoops_analytic</td>\n",
       "      <td id=\"T_62140_row0_col1\" class=\"data row0 col1\" >0.366000</td>\n",
       "      <td id=\"T_62140_row0_col2\" class=\"data row0 col2\" >0.049000</td>\n",
       "      <td id=\"T_62140_row0_col3\" class=\"data row0 col3\" >0.313000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
       "      <td id=\"T_62140_row1_col0\" class=\"data row1 col0\" >Modelica.Magnetic.FluxTubes.Examples.Hysteresis.ThreePhaseTransformerWithRectifier</td>\n",
       "      <td id=\"T_62140_row1_col1\" class=\"data row1 col1\" >1048.296000</td>\n",
       "      <td id=\"T_62140_row1_col2\" class=\"data row1 col2\" >336.542000</td>\n",
       "      <td id=\"T_62140_row1_col3\" class=\"data row1 col3\" >789.614000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
       "      <td id=\"T_62140_row2_col0\" class=\"data row2 col0\" >Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulumInitTip</td>\n",
       "      <td id=\"T_62140_row2_col1\" class=\"data row2 col1\" >0.041000</td>\n",
       "      <td id=\"T_62140_row2_col2\" class=\"data row2 col2\" >0.029000</td>\n",
       "      <td id=\"T_62140_row2_col3\" class=\"data row2 col3\" >0.034000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
       "      <td id=\"T_62140_row3_col0\" class=\"data row3 col0\" >Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar2</td>\n",
       "      <td id=\"T_62140_row3_col1\" class=\"data row3 col1\" >0.092000</td>\n",
       "      <td id=\"T_62140_row3_col2\" class=\"data row3 col2\" >0.032000</td>\n",
       "      <td id=\"T_62140_row3_col3\" class=\"data row3 col3\" >0.046000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
       "      <td id=\"T_62140_row4_col0\" class=\"data row4 col0\" >Modelica.Mechanics.MultiBody.Examples.Elementary.FreeBody</td>\n",
       "      <td id=\"T_62140_row4_col1\" class=\"data row4 col1\" >0.043000</td>\n",
       "      <td id=\"T_62140_row4_col2\" class=\"data row4 col2\" >0.057000</td>\n",
       "      <td id=\"T_62140_row4_col3\" class=\"data row4 col3\" >0.029000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row5\" class=\"row_heading level0 row5\" >5</th>\n",
       "      <td id=\"T_62140_row5_col0\" class=\"data row5 col0\" >Modelica.Mechanics.MultiBody.Examples.Elementary.LineForceWithTwoMasses</td>\n",
       "      <td id=\"T_62140_row5_col1\" class=\"data row5 col1\" >0.045000</td>\n",
       "      <td id=\"T_62140_row5_col2\" class=\"data row5 col2\" >0.020000</td>\n",
       "      <td id=\"T_62140_row5_col3\" class=\"data row5 col3\" >0.025000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row6\" class=\"row_heading level0 row6\" >6</th>\n",
       "      <td id=\"T_62140_row6_col0\" class=\"data row6 col0\" >Modelica.Mechanics.Rotational.Examples.LossyGearDemo1</td>\n",
       "      <td id=\"T_62140_row6_col1\" class=\"data row6 col1\" >0.039000</td>\n",
       "      <td id=\"T_62140_row6_col2\" class=\"data row6 col2\" >0.029000</td>\n",
       "      <td id=\"T_62140_row6_col3\" class=\"data row6 col3\" >0.032000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row7\" class=\"row_heading level0 row7\" >7</th>\n",
       "      <td id=\"T_62140_row7_col0\" class=\"data row7 col0\" >Modelica.Magnetic.FluxTubes.Examples.MovingCoilActuator.ArmatureStroke</td>\n",
       "      <td id=\"T_62140_row7_col1\" class=\"data row7 col1\" >0.008000</td>\n",
       "      <td id=\"T_62140_row7_col2\" class=\"data row7 col2\" >0.005000</td>\n",
       "      <td id=\"T_62140_row7_col3\" class=\"data row7 col3\" >0.001000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row8\" class=\"row_heading level0 row8\" >8</th>\n",
       "      <td id=\"T_62140_row8_col0\" class=\"data row8 col0\" >Modelica.Blocks.Examples.PID_Controller</td>\n",
       "      <td id=\"T_62140_row8_col1\" class=\"data row8 col1\" >0.002000</td>\n",
       "      <td id=\"T_62140_row8_col2\" class=\"data row8 col2\" >0.001000</td>\n",
       "      <td id=\"T_62140_row8_col3\" class=\"data row8 col3\" >0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row9\" class=\"row_heading level0 row9\" >9</th>\n",
       "      <td id=\"T_62140_row9_col0\" class=\"data row9 col0\" >Modelica.Mechanics.MultiBody.Examples.Loops.Engine1a</td>\n",
       "      <td id=\"T_62140_row9_col1\" class=\"data row9 col1\" >0.090000</td>\n",
       "      <td id=\"T_62140_row9_col2\" class=\"data row9 col2\" >0.091000</td>\n",
       "      <td id=\"T_62140_row9_col3\" class=\"data row9 col3\" >0.070000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row10\" class=\"row_heading level0 row10\" >10</th>\n",
       "      <td id=\"T_62140_row10_col0\" class=\"data row10 col0\" >Modelica.Blocks.Examples.RealNetwork1</td>\n",
       "      <td id=\"T_62140_row10_col1\" class=\"data row10 col1\" >0.002000</td>\n",
       "      <td id=\"T_62140_row10_col2\" class=\"data row10 col2\" >0.005000</td>\n",
       "      <td id=\"T_62140_row10_col3\" class=\"data row10 col3\" >0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row11\" class=\"row_heading level0 row11\" >11</th>\n",
       "      <td id=\"T_62140_row11_col0\" class=\"data row11 col0\" >Modelica.Mechanics.Translational.Examples.Sensors</td>\n",
       "      <td id=\"T_62140_row11_col1\" class=\"data row11 col1\" >0.011000</td>\n",
       "      <td id=\"T_62140_row11_col2\" class=\"data row11 col2\" >0.022000</td>\n",
       "      <td id=\"T_62140_row11_col3\" class=\"data row11 col3\" >0.009000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row12\" class=\"row_heading level0 row12\" >12</th>\n",
       "      <td id=\"T_62140_row12_col0\" class=\"data row12 col0\" >Modelica.Mechanics.Rotational.Examples.First</td>\n",
       "      <td id=\"T_62140_row12_col1\" class=\"data row12 col1\" >0.050000</td>\n",
       "      <td id=\"T_62140_row12_col2\" class=\"data row12 col2\" >0.036000</td>\n",
       "      <td id=\"T_62140_row12_col3\" class=\"data row12 col3\" >0.042000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row13\" class=\"row_heading level0 row13\" >13</th>\n",
       "      <td id=\"T_62140_row13_col0\" class=\"data row13 col0\" >Modelica.Mechanics.Translational.Examples.PreLoad</td>\n",
       "      <td id=\"T_62140_row13_col1\" class=\"data row13 col1\" >0.003000</td>\n",
       "      <td id=\"T_62140_row13_col2\" class=\"data row13 col2\" >0.004000</td>\n",
       "      <td id=\"T_62140_row13_col3\" class=\"data row13 col3\" >0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row14\" class=\"row_heading level0 row14\" >14</th>\n",
       "      <td id=\"T_62140_row14_col0\" class=\"data row14 col0\" >Modelica.Media.Examples.R134a.R134a1</td>\n",
       "      <td id=\"T_62140_row14_col1\" class=\"data row14 col1\" >1.062000</td>\n",
       "      <td id=\"T_62140_row14_col2\" class=\"data row14 col2\" >0.303000</td>\n",
       "      <td id=\"T_62140_row14_col3\" class=\"data row14 col3\" >0.877000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row15\" class=\"row_heading level0 row15\" >15</th>\n",
       "      <td id=\"T_62140_row15_col0\" class=\"data row15 col0\" >Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheelSetDriving</td>\n",
       "      <td id=\"T_62140_row15_col1\" class=\"data row15 col1\" >0.084000</td>\n",
       "      <td id=\"T_62140_row15_col2\" class=\"data row15 col2\" >0.073000</td>\n",
       "      <td id=\"T_62140_row15_col3\" class=\"data row15 col3\" >0.071000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row16\" class=\"row_heading level0 row16\" >16</th>\n",
       "      <td id=\"T_62140_row16_col0\" class=\"data row16 col0\" >Modelica.StateGraph.Examples.ExecutionPaths</td>\n",
       "      <td id=\"T_62140_row16_col1\" class=\"data row16 col1\" >0.001000</td>\n",
       "      <td id=\"T_62140_row16_col2\" class=\"data row16 col2\" >0.006000</td>\n",
       "      <td id=\"T_62140_row16_col3\" class=\"data row16 col3\" >0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row17\" class=\"row_heading level0 row17\" >17</th>\n",
       "      <td id=\"T_62140_row17_col0\" class=\"data row17 col0\" >Modelica.Mechanics.Rotational.Examples.CoupledClutches</td>\n",
       "      <td id=\"T_62140_row17_col1\" class=\"data row17 col1\" >0.277000</td>\n",
       "      <td id=\"T_62140_row17_col2\" class=\"data row17 col2\" >0.200000</td>\n",
       "      <td id=\"T_62140_row17_col3\" class=\"data row17 col3\" >0.187000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row18\" class=\"row_heading level0 row18\" >18</th>\n",
       "      <td id=\"T_62140_row18_col0\" class=\"data row18 col0\" >Modelica.Media.Examples.MixtureGases</td>\n",
       "      <td id=\"T_62140_row18_col1\" class=\"data row18 col1\" >0.032000</td>\n",
       "      <td id=\"T_62140_row18_col2\" class=\"data row18 col2\" >0.016000</td>\n",
       "      <td id=\"T_62140_row18_col3\" class=\"data row18 col3\" >0.027000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row19\" class=\"row_heading level0 row19\" >19</th>\n",
       "      <td id=\"T_62140_row19_col0\" class=\"data row19 col0\" >Modelica.Media.Examples.ReferenceAir.DryAir2</td>\n",
       "      <td id=\"T_62140_row19_col1\" class=\"data row19 col1\" >0.090000</td>\n",
       "      <td id=\"T_62140_row19_col2\" class=\"data row19 col2\" >0.109000</td>\n",
       "      <td id=\"T_62140_row19_col3\" class=\"data row19 col3\" >0.042000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row20\" class=\"row_heading level0 row20\" >20</th>\n",
       "      <td id=\"T_62140_row20_col0\" class=\"data row20 col0\" >Modelica.StateGraph.Examples.FirstExample_Variant2</td>\n",
       "      <td id=\"T_62140_row20_col1\" class=\"data row20 col1\" >0.003000</td>\n",
       "      <td id=\"T_62140_row20_col2\" class=\"data row20 col2\" >0.004000</td>\n",
       "      <td id=\"T_62140_row20_col3\" class=\"data row20 col3\" >0.001000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row21\" class=\"row_heading level0 row21\" >21</th>\n",
       "      <td id=\"T_62140_row21_col0\" class=\"data row21 col0\" >Modelica.Mechanics.MultiBody.Examples.Elementary.SpringWithMass</td>\n",
       "      <td id=\"T_62140_row21_col1\" class=\"data row21 col1\" >0.029000</td>\n",
       "      <td id=\"T_62140_row21_col2\" class=\"data row21 col2\" >0.252000</td>\n",
       "      <td id=\"T_62140_row21_col3\" class=\"data row21 col3\" >0.026000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row22\" class=\"row_heading level0 row22\" >22</th>\n",
       "      <td id=\"T_62140_row22_col0\" class=\"data row22 col0\" >Modelica.Mechanics.MultiBody.Examples.Constraints.RevoluteConstraint</td>\n",
       "      <td id=\"T_62140_row22_col1\" class=\"data row22 col1\" >0.063000</td>\n",
       "      <td id=\"T_62140_row22_col2\" class=\"data row22 col2\" >0.048000</td>\n",
       "      <td id=\"T_62140_row22_col3\" class=\"data row22 col3\" >0.053000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row23\" class=\"row_heading level0 row23\" >23</th>\n",
       "      <td id=\"T_62140_row23_col0\" class=\"data row23 col0\" >Modelica.Mechanics.Translational.Examples.Accelerate</td>\n",
       "      <td id=\"T_62140_row23_col1\" class=\"data row23 col1\" >0.001000</td>\n",
       "      <td id=\"T_62140_row23_col2\" class=\"data row23 col2\" >0.001000</td>\n",
       "      <td id=\"T_62140_row23_col3\" class=\"data row23 col3\" >0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row24\" class=\"row_heading level0 row24\" >24</th>\n",
       "      <td id=\"T_62140_row24_col0\" class=\"data row24 col0\" >Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6_analytic</td>\n",
       "      <td id=\"T_62140_row24_col1\" class=\"data row24 col1\" >158.696000</td>\n",
       "      <td id=\"T_62140_row24_col2\" class=\"data row24 col2\" >72.234000</td>\n",
       "      <td id=\"T_62140_row24_col3\" class=\"data row24 col3\" >127.356000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row25\" class=\"row_heading level0 row25\" >25</th>\n",
       "      <td id=\"T_62140_row25_col0\" class=\"data row25 col0\" >Modelica.Mechanics.Rotational.Examples.ElasticBearing</td>\n",
       "      <td id=\"T_62140_row25_col1\" class=\"data row25 col1\" >0.074000</td>\n",
       "      <td id=\"T_62140_row25_col2\" class=\"data row25 col2\" >0.104000</td>\n",
       "      <td id=\"T_62140_row25_col3\" class=\"data row25 col3\" >0.061000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row26\" class=\"row_heading level0 row26\" >26</th>\n",
       "      <td id=\"T_62140_row26_col0\" class=\"data row26 col0\" >Modelica.Mechanics.MultiBody.Examples.Constraints.PrismaticConstraint</td>\n",
       "      <td id=\"T_62140_row26_col1\" class=\"data row26 col1\" >0.061000</td>\n",
       "      <td id=\"T_62140_row26_col2\" class=\"data row26 col2\" >0.036000</td>\n",
       "      <td id=\"T_62140_row26_col3\" class=\"data row26 col3\" >0.051000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row27\" class=\"row_heading level0 row27\" >27</th>\n",
       "      <td id=\"T_62140_row27_col0\" class=\"data row27 col0\" >Modelica.Mechanics.MultiBody.Examples.Elementary.RollingWheel</td>\n",
       "      <td id=\"T_62140_row27_col1\" class=\"data row27 col1\" >0.530000</td>\n",
       "      <td id=\"T_62140_row27_col2\" class=\"data row27 col2\" >0.647000</td>\n",
       "      <td id=\"T_62140_row27_col3\" class=\"data row27 col3\" >0.472000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row28\" class=\"row_heading level0 row28\" >28</th>\n",
       "      <td id=\"T_62140_row28_col0\" class=\"data row28 col0\" >Modelica.Mechanics.MultiBody.Examples.Loops.Fourbar_analytic</td>\n",
       "      <td id=\"T_62140_row28_col1\" class=\"data row28 col1\" >0.030000</td>\n",
       "      <td id=\"T_62140_row28_col2\" class=\"data row28 col2\" >0.018000</td>\n",
       "      <td id=\"T_62140_row28_col3\" class=\"data row28 col3\" >0.018000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row29\" class=\"row_heading level0 row29\" >29</th>\n",
       "      <td id=\"T_62140_row29_col0\" class=\"data row29 col0\" >Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulum</td>\n",
       "      <td id=\"T_62140_row29_col1\" class=\"data row29 col1\" >0.030000</td>\n",
       "      <td id=\"T_62140_row29_col2\" class=\"data row29 col2\" >0.027000</td>\n",
       "      <td id=\"T_62140_row29_col3\" class=\"data row29 col3\" >0.024000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row30\" class=\"row_heading level0 row30\" >30</th>\n",
       "      <td id=\"T_62140_row30_col0\" class=\"data row30 col0\" >Modelica.Mechanics.MultiBody.Examples.Elementary.Surfaces</td>\n",
       "      <td id=\"T_62140_row30_col1\" class=\"data row30 col1\" >0.012000</td>\n",
       "      <td id=\"T_62140_row30_col2\" class=\"data row30 col2\" >0.168000</td>\n",
       "      <td id=\"T_62140_row30_col3\" class=\"data row30 col3\" >0.003000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row31\" class=\"row_heading level0 row31\" >31</th>\n",
       "      <td id=\"T_62140_row31_col0\" class=\"data row31 col0\" >Modelica.Mechanics.Rotational.Examples.FirstGrounded</td>\n",
       "      <td id=\"T_62140_row31_col1\" class=\"data row31 col1\" >0.055000</td>\n",
       "      <td id=\"T_62140_row31_col2\" class=\"data row31 col2\" >0.035000</td>\n",
       "      <td id=\"T_62140_row31_col3\" class=\"data row31 col3\" >0.033000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row32\" class=\"row_heading level0 row32\" >32</th>\n",
       "      <td id=\"T_62140_row32_col0\" class=\"data row32 col0\" >Modelica.Mechanics.Rotational.Examples.GenerationOfFMUs</td>\n",
       "      <td id=\"T_62140_row32_col1\" class=\"data row32 col1\" >0.111000</td>\n",
       "      <td id=\"T_62140_row32_col2\" class=\"data row32 col2\" >0.129000</td>\n",
       "      <td id=\"T_62140_row32_col3\" class=\"data row32 col3\" >0.095000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row33\" class=\"row_heading level0 row33\" >33</th>\n",
       "      <td id=\"T_62140_row33_col0\" class=\"data row33 col0\" >Modelica.Mechanics.Rotational.Examples.RollingWheel</td>\n",
       "      <td id=\"T_62140_row33_col1\" class=\"data row33 col1\" >0.001000</td>\n",
       "      <td id=\"T_62140_row33_col2\" class=\"data row33 col2\" >0.001000</td>\n",
       "      <td id=\"T_62140_row33_col3\" class=\"data row33 col3\" >0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row34\" class=\"row_heading level0 row34\" >34</th>\n",
       "      <td id=\"T_62140_row34_col0\" class=\"data row34 col0\" >Modelica.Magnetic.FluxTubes.Examples.Hysteresis.InductorWithHysteresis</td>\n",
       "      <td id=\"T_62140_row34_col1\" class=\"data row34 col1\" >55.853000</td>\n",
       "      <td id=\"T_62140_row34_col2\" class=\"data row34 col2\" >27.343000</td>\n",
       "      <td id=\"T_62140_row34_col3\" class=\"data row34 col3\" >45.658000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row35\" class=\"row_heading level0 row35\" >35</th>\n",
       "      <td id=\"T_62140_row35_col0\" class=\"data row35 col0\" >Modelica.Media.Examples.ReferenceAir.Inverse_sh_T</td>\n",
       "      <td id=\"T_62140_row35_col1\" class=\"data row35 col1\" >0.076000</td>\n",
       "      <td id=\"T_62140_row35_col2\" class=\"data row35 col2\" >0.177000</td>\n",
       "      <td id=\"T_62140_row35_col3\" class=\"data row35 col3\" >0.055000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row36\" class=\"row_heading level0 row36\" >36</th>\n",
       "      <td id=\"T_62140_row36_col0\" class=\"data row36 col0\" >Modelica.Mechanics.Rotational.Examples.Backlash</td>\n",
       "      <td id=\"T_62140_row36_col1\" class=\"data row36 col1\" >0.005000</td>\n",
       "      <td id=\"T_62140_row36_col2\" class=\"data row36 col2\" >0.007000</td>\n",
       "      <td id=\"T_62140_row36_col3\" class=\"data row36 col3\" >0.003000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row37\" class=\"row_heading level0 row37\" >37</th>\n",
       "      <td id=\"T_62140_row37_col0\" class=\"data row37 col0\" >Modelica.Mechanics.MultiBody.Examples.Elementary.PendulumWithSpringDamper</td>\n",
       "      <td id=\"T_62140_row37_col1\" class=\"data row37 col1\" >0.008000</td>\n",
       "      <td id=\"T_62140_row37_col2\" class=\"data row37 col2\" >0.004000</td>\n",
       "      <td id=\"T_62140_row37_col3\" class=\"data row37 col3\" >0.002000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row38\" class=\"row_heading level0 row38\" >38</th>\n",
       "      <td id=\"T_62140_row38_col0\" class=\"data row38 col0\" >Modelica.Mechanics.Rotational.Examples.HeatLosses</td>\n",
       "      <td id=\"T_62140_row38_col1\" class=\"data row38 col1\" >7.209000</td>\n",
       "      <td id=\"T_62140_row38_col2\" class=\"data row38 col2\" >10.440000</td>\n",
       "      <td id=\"T_62140_row38_col3\" class=\"data row38 col3\" >6.144000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row39\" class=\"row_heading level0 row39\" >39</th>\n",
       "      <td id=\"T_62140_row39_col0\" class=\"data row39 col0\" >Modelica.Blocks.Examples.InverseModel</td>\n",
       "      <td id=\"T_62140_row39_col1\" class=\"data row39 col1\" >0.020000</td>\n",
       "      <td id=\"T_62140_row39_col2\" class=\"data row39 col2\" >0.015000</td>\n",
       "      <td id=\"T_62140_row39_col3\" class=\"data row39 col3\" >0.011000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row40\" class=\"row_heading level0 row40\" >40</th>\n",
       "      <td id=\"T_62140_row40_col0\" class=\"data row40 col0\" >Modelica.Magnetic.FundamentalWave.Examples.Components.EddyCurrentLosses</td>\n",
       "      <td id=\"T_62140_row40_col1\" class=\"data row40 col1\" >0.021000</td>\n",
       "      <td id=\"T_62140_row40_col2\" class=\"data row40 col2\" >0.016000</td>\n",
       "      <td id=\"T_62140_row40_col3\" class=\"data row40 col3\" >0.020000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row41\" class=\"row_heading level0 row41\" >41</th>\n",
       "      <td id=\"T_62140_row41_col0\" class=\"data row41 col0\" >Modelica.Media.Examples.ReferenceAir.DryAir1</td>\n",
       "      <td id=\"T_62140_row41_col1\" class=\"data row41 col1\" >0.051000</td>\n",
       "      <td id=\"T_62140_row41_col2\" class=\"data row41 col2\" >0.071000</td>\n",
       "      <td id=\"T_62140_row41_col3\" class=\"data row41 col3\" >0.030000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row42\" class=\"row_heading level0 row42\" >42</th>\n",
       "      <td id=\"T_62140_row42_col0\" class=\"data row42 col0\" >Modelica.Magnetic.FundamentalWave.Examples.Components.SinglePhaseInductance</td>\n",
       "      <td id=\"T_62140_row42_col1\" class=\"data row42 col1\" >0.011000</td>\n",
       "      <td id=\"T_62140_row42_col2\" class=\"data row42 col2\" >0.014000</td>\n",
       "      <td id=\"T_62140_row42_col3\" class=\"data row42 col3\" >0.010000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_62140_level0_row43\" class=\"row_heading level0 row43\" >43</th>\n",
       "      <td id=\"T_62140_row43_col0\" class=\"data row43 col0\" >Modelica.Mechanics.Translational.Examples.Oscillator</td>\n",
       "      <td id=\"T_62140_row43_col1\" class=\"data row43 col1\" >0.084000</td>\n",
       "      <td id=\"T_62140_row43_col2\" class=\"data row43 col2\" >0.128000</td>\n",
       "      <td id=\"T_62140_row43_col3\" class=\"data row43 col3\" >0.065000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 31
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "### 找到相差太多的模型进行细化分析",
   "id": "e599d88358e2d44c"
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-15T06:23:55.936949Z",
     "start_time": "2024-05-15T06:23:55.917829Z"
    }
   },
   "cell_type": "code",
   "source": [
    "threshold_multiplier_onestep = 1.1  # 定义倍数阈值\n",
    "\n",
    "# 找出Normal模式比Onestep慢至少threshold_multiplier_onestep倍的模型\n",
    "much_slower_than_onestep = []\n",
    "for model_name in slower_than_onestep:\n",
    "    if model_name in zq_n_dict:\n",
    "        normal_time = zq_dict[model_name]\n",
    "        onestep_time = zq_n_dict[model_name]\n",
    "        if onestep_time <= 0.05:  # 检查onestep_time是否为零\n",
    "            continue  # 跳过此次循环，不添加到列表中\n",
    "        if normal_time > onestep_time * threshold_multiplier_onestep:\n",
    "            much_slower_than_onestep.append((model_name, normal_time / onestep_time))\n",
    "\n",
    "# 转换为 DataFrame 以便更好地展示\n",
    "df_much_slower_than_onestep = pd.DataFrame(much_slower_than_onestep, columns=[\"模型名称\", \"倍数差\"])\n",
    "\n",
    "# 按倍数差从大到小排序\n",
    "df_much_slower_than_onestep_sorted = df_much_slower_than_onestep.sort_values(by=\"倍数差\", ascending=False).reset_index(drop=True)\n",
    "\n",
    "# 打印排序后的结果\n",
    "print(\"Normal模式比Onestep慢很多倍的模型和相差倍数如下（按倍数从大到小排序）：\")\n",
    "df_much_slower_than_onestep_sorted\n"
   ],
   "id": "868d4d9d54334247",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Normal模式比Onestep慢很多倍的模型和相差倍数如下（按倍数从大到小排序）：\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "                                                 模型名称       倍数差\n",
       "0   Modelica.Mechanics.Rotational.Examples.Coupled...  1.481283\n",
       "1   Modelica.Media.Examples.ReferenceAir.Inverse_sh_T  1.381818\n",
       "2   Modelica.Magnetic.FluxTubes.Examples.Hysteresi...  1.327606\n",
       "3   Modelica.Mechanics.Translational.Examples.Osci...  1.292308\n",
       "4   Modelica.Mechanics.MultiBody.Examples.Loops.En...  1.285714\n",
       "5   Modelica.Mechanics.MultiBody.Examples.Loops.En...  1.246082\n",
       "6   Modelica.Magnetic.FluxTubes.Examples.Hysteresi...  1.223291\n",
       "7   Modelica.Mechanics.Rotational.Examples.Elastic...  1.213115\n",
       "8                Modelica.Media.Examples.R134a.R134a1  1.210946\n",
       "9   Modelica.Mechanics.MultiBody.Examples.Constrai...  1.196078\n",
       "10  Modelica.Mechanics.MultiBody.Examples.Constrai...  1.188679\n",
       "11  Modelica.Mechanics.MultiBody.Examples.Elementa...  1.183099\n",
       "12  Modelica.Mechanics.Rotational.Examples.HeatLosses  1.173340\n",
       "13  Modelica.Mechanics.MultiBody.Examples.Loops.Pl...  1.169329\n",
       "14  Modelica.Mechanics.Rotational.Examples.Generat...  1.168421\n",
       "15  Modelica.Mechanics.MultiBody.Examples.Elementa...  1.122881"
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>模型名称</th>\n",
       "      <th>倍数差</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Modelica.Mechanics.Rotational.Examples.Coupled...</td>\n",
       "      <td>1.481283</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Modelica.Media.Examples.ReferenceAir.Inverse_sh_T</td>\n",
       "      <td>1.381818</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Modelica.Magnetic.FluxTubes.Examples.Hysteresi...</td>\n",
       "      <td>1.327606</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Modelica.Mechanics.Translational.Examples.Osci...</td>\n",
       "      <td>1.292308</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Modelica.Mechanics.MultiBody.Examples.Loops.En...</td>\n",
       "      <td>1.285714</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Modelica.Mechanics.MultiBody.Examples.Loops.En...</td>\n",
       "      <td>1.246082</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Modelica.Magnetic.FluxTubes.Examples.Hysteresi...</td>\n",
       "      <td>1.223291</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Modelica.Mechanics.Rotational.Examples.Elastic...</td>\n",
       "      <td>1.213115</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Modelica.Media.Examples.R134a.R134a1</td>\n",
       "      <td>1.210946</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>Modelica.Mechanics.MultiBody.Examples.Constrai...</td>\n",
       "      <td>1.196078</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>Modelica.Mechanics.MultiBody.Examples.Constrai...</td>\n",
       "      <td>1.188679</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>Modelica.Mechanics.MultiBody.Examples.Elementa...</td>\n",
       "      <td>1.183099</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>Modelica.Mechanics.Rotational.Examples.HeatLosses</td>\n",
       "      <td>1.173340</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>Modelica.Mechanics.MultiBody.Examples.Loops.Pl...</td>\n",
       "      <td>1.169329</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>Modelica.Mechanics.Rotational.Examples.Generat...</td>\n",
       "      <td>1.168421</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>Modelica.Mechanics.MultiBody.Examples.Elementa...</td>\n",
       "      <td>1.122881</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 41
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-15T06:24:18.073447Z",
     "start_time": "2024-05-15T06:24:17.775056Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 假设 df_much_slower_than_onestep_sorted 已经是排序后的 DataFrame\n",
    "top_5_models_onestep = df_much_slower_than_onestep_sorted.head(5)\n",
    "\n",
    "# 提取这些模型的运行时间\n",
    "top_5_data_onestep = []\n",
    "for model in top_5_models_onestep['模型名称']:\n",
    "    normal_time = zq_dict.get(model, float('nan'))\n",
    "    dymola_time = dymola_dict.get(model, float('nan'))\n",
    "    onestep_time = zq_n_dict.get(model, float('nan'))\n",
    "    simplified_name = '.'.join(model.split('.')[-2:])  # 简化模型名称\n",
    "    top_5_data_onestep.append([simplified_name, normal_time, dymola_time, onestep_time])\n",
    "\n",
    "# 转换为DataFrame\n",
    "df_top_5_onestep = pd.DataFrame(top_5_data_onestep, columns=['简化模型名称', 'Normal时间', 'Dymola时间', 'Onestep时间'])\n",
    "\n",
    "# 绘图\n",
    "plt.figure(figsize=(12, 6))\n",
    "bar_width = 0.25  # 条形宽度\n",
    "index = np.arange(len(df_top_5_onestep))  # 模型数量对应的索引数组\n",
    "\n",
    "plt.bar(index, df_top_5_onestep['Normal时间'], bar_width, label='Normal', color='blue')\n",
    "plt.bar(index + bar_width, df_top_5_onestep['Dymola时间'], bar_width, label='Dymola', color='red')\n",
    "plt.bar(index + 2 * bar_width, df_top_5_onestep['Onestep时间'], bar_width, label='Onestep', color='green')\n",
    "\n",
    "plt.xlabel('模型名称')\n",
    "plt.ylabel('运行时间 (对数刻度)')\n",
    "plt.yscale('log')  # 设置y轴为对数刻度\n",
    "plt.title('Top 5 模型运行时间比较（Normal vs Dymola vs Onestep）')\n",
    "plt.xticks(index + bar_width, df_top_5_onestep['简化模型名称'], rotation=45)  # 设置x轴标签\n",
    "plt.legend()\n",
    "\n",
    "# 设置中文字体\n",
    "plt.rcParams['font.family'] = 'Microsoft YaHei'\n",
    "plt.rcParams['font.size'] = 10\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "plt.show()"
   ],
   "id": "a19ddfa980cfad8c",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/IAAAL/CAYAAADFi/xSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAADx2ElEQVR4nOzdeZyN9f//8eeZfTGLfR27SJElJHuWLElahpCl7EN2EdmSbSTJiORjj1SokLJHURMRjUT2LUbMgtnfvz/85nydmcEMM84cHvfb7dxuc67rOtd5nW3OeV7Xe7EYY4wAAAAAAIBDcLJ3AQAAAAAAIP0I8gAAAAAAOBCCPAAAAAAADoQgDwAAAACAAyHIAwAAAADgQAjyAAAAAAA4EII8AAAAAAAOhCAPAAAAAIADIcgDAJSYmChjTJbs++rVq4qJicmSfQMAADyMCPIAkA2VLVtWW7ZssVm2ZcsWlS1b1np9+/btNteTJSYmKiEh4ZaXpKSkVLepWrWqFi5cKEmKi4tT79699eeff2bKY+nRo4dq166d5v1mlqNHj6pr166Kjo62WX7kyBFVq1ZNf/31113t1xijhISENNeFhYVp5syZ6dpPVFSUevXqpXPnzqVaFx8fr7Fjx+rMmTN3VSMAAHj4EOQBIBuKjY1VYmKipBth9MCBA/rnn38UHR2tAwcO6MCBAzpy5IgiIiKs148dOyZJqlGjhlxdXW95efHFFxUREaHOnTunCr6S5ObmptOnT6t169aKiIiQJP3111+yWCy3veTIkSPVvhYsWKDPPvtMo0ePlpOTk8aPH3/bfXh4eEiSEhISdPz48VSXK1eupPl8XbhwQfPmzUt15r9w4cJyd3dXvXr19Mcff+jIkSN3fBwWi0UbN26UJH3++edydXVN8z5//fVXDR48OB2vprR161YtWbJEOXPmTLXO2dlZmzZt0ksvvXTLgwYZYYxRSEiIduzYcc/7cgRbt26VxWLRggUL7F2KwylevLjq169v7zKQDlevXtWUKVN0+PBhe5cCIJtwsXcBAJBZOnfubD2rfCtbtmy5Lz9c//33XxUoUCDV8mLFiun48eMZ2tcLL7xgc3a8QoUKNuuTr9erV09bt27VZ599pmvXrqly5cr6/PPP9cgjj+iXX37RsGHDtGXLFvn5+en69etauHChpk6dmmYA/9///qeKFSvqtdde09dff62SJUvq4MGDt63Tycn22PD27dvVp08fDR06VC1btpQk9erVSy+//PId93H69GmVKFEi1frRo0drzJgxt63jZp6envr2229Vp04dbd68WUFBQXd8HI8++mi695+WpKQknTp1SsWKFdPly5cVGxurtWvXql69etYDEX5+fjZn4EeOHKnXXntNW7ZssXncxYsXl4tLxr6qp0yZopkzZ2rv3r3WZVu3blWDBg3k6uqq3377TRUrVkx1u+TPT1Z1sXgQLViwQF26dLFed3V1Vf78+VW9enV16tRJLVu2lMVisWOFD4bvv/9es2fP1i+//KLw8HD5+PioatWqeuONNxQYGGjX5/j69etas2aNSpYsqapVq2bZ/Xh7eys8PFytW7fWr7/+Ki8vryy7LwCOgSAP4IExaNAgtW3b1nq9WbNmatSokQYNGmRdllaAyQoXLlyQJL333nuqUqWKdbmnp2eG93XgwAFJ0saNG9W1a1frgYCtW7eqQ4cOOn36tM32jzzyiDWMlStXThUrVlR4eLicnZ1VqVIlSdL58+dve5958uTRokWLNGzYMF26dEl58uRRuXLl0l3z999/r9atW6tZs2Z67733dPnyZeXMmVO5c+dW7ty5072fffv26ZFHHpF040CFpDSbyZ84cULSjdYL4eHhKliwoA4fPqz+/ftrx44d+uWXX+Tt7S1JGXocd6N///5auHChDh48qNdff13ff/+9dV3BggUlSfPnz7cJgMmaNGlic/3YsWMqXrx4uu/70KFDGjlypFatWpXm85yQkKAuXbrol19+yfABAtza5MmTVbFiRcXFxenEiRNau3atWrVqpSZNmmj58uVptsTAnRlj1KNHD82dO1fVq1fXiBEjVLRoUf37779auXKl2rZtqy+++ELLli27ZcuZrPbLL78oMDBQ8+fPz9IgL934Plm9erVGjx6t4ODgLL0vANkf3+IAHhgVKlRIdba6cOHCatq06X2vJTnIN2/e3Bqe7+TkyZN65plnJElnzpxRp06d5OnpqSlTpuj5559X0aJF1adPH2vz6yJFiujNN99UQkKCLBaLnJ2ddfXqVUVFRVn7o//33386f/68Ll++LGOMNcDHx8ffsZ5GjRopNDQ0w2e7zp49q+eff16vvPKKFixYoH379qlevXrauXOnHn/88Qzty83NzdrcPrmO250xr1mzpiRp7ty5Kl68uH766SdJ/3c2Kzw8PM3bFSxYUH5+fhmqLS0DBw7UzJkz9emnn6pQoUJav3699u/fr5o1a+rrr7/WH3/8oQEDBki6cQb8woUL6tSpk+bOnasiRYpo+fLlKlKkiGrXrn1X9z9hwgRVqFBBzz33XJrr27Rpo+XLl2vSpEkaOXLkXT/O9EhKSkrVSuNBVb16dZuWPn379tX69ev10ksvqUWLFtq+fbucnZ3tV6CDmjBhgubOnas333xT06dPt/lf1LVrV33wwQcaOHCg3n777Yci2Lq6umrYsGHq27evhgwZonz58tm7JAB29HB8wwLATb7++mvVq1dPvr6+8vDwUMWKFRUSEmLTpPjmfrezZ89W2bJl5e7urrJly+rTTz+9431cvHhRkuTr66u4uLh01ZU7d25NnTpV3bp1U0JCgnr06KGpU6fqySeflKurq8qWLashQ4ZY+7qXKVNGb731llxdXdWwYUNJ0kcffaTixYurZMmSkqSmTZuqePHiat++vf777z8VL15cxYsXV2ho6C3r+Oeff/TXX3/pr7/+0qVLl3TgwAG98MIL6bp06dJFhQoV0ocffqhFixbJyclJffv2Ve3atTMc4m/FGJPqsnPnTkk3nndjjLp27ZrqdtOnT9ejjz6a5uWLL7647X0mPx/Jl3///ddmfVxcnDp27KiZM2dqyZIlev31163rlixZohdffFGnTp3SV199ZXO73r1769y5c8qfP78k6fjx42rWrJl+/PHHDD8v0dHRWrZsmbp3737LbZ599ll16NBB7777rrWlx51k5PPy6aefqmvXrvL29tbAgQMl3TgA07lzZ61YsUKPPvqoPD09Va9ePR05ckQXLlxQYGCgfH19VahQIQ0cONDm8xIVFaXx48erYsWK8vHxUYECBdShQwfrgbL0OH/+vFxdXfXqq6+mWjdw4EC5uLjo9OnTMsZozpw5qly5sry9vZUzZ049//zz6b6flJo2barJkydr586dWrhwof755x85OTml+d4cM2aMnJ2ddfLkSR0/flwWi0VjxozRzJkzVaJECXl7e6tly5a6ePGijhw5omeffVY5cuRQ8eLFNXHixFTdIY4fP279LLq5ualQoULq1q3bHVvi3M3zPXXqVFksFpuWJ9KN1h/58+e3Hkg9f/68goKCVLRoUbm7u6to0aKaN2/eLfcb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5EnrsrNnzxoPDw8zcOBA6zJJxsPDw/z99982t3/xxReNi4uLOXv2bKr7fPvtt01AQMAtawLwcOCMPICHxvfff6+4uDj169cvVTPNN954Q8aYVHO3v/baa3Jzc7Ne9/T0VIsWLXTw4MFUZ9Vu9uijj6pFixZq0KCB2rZtq88//1z9+vXTzp079d13393ydjNnztSjjz6qvHnzavLkyVq3bp1WrFghSdq9e7f1jPrNlw8++MB6+8TERDVo0ECHDx/WlClTbvt8tGrVSi4uLvL399f169dve5ZeutEM9Z133lFgYKB128DAwDSbCh89elQvvPCCYmNjrf2k/f39Va5cuVQXHx8feXt7W6+XKlXKup9169bp4MGDOnjwoJ544glJN1o5vPDCCxo7dmyG56ZfuXKlcubMaXP57bffMrSPmyUlJemll17Sr7/+qtKlS6dav3v3bh0/flxOTk7q0qWLfvrpJ1ksFm3btk1z5sxRVFSU3njjDev2q1ev1scff6yQkBD99NNPGRoc8cKFC+nuM/vcc8+pU6dOGjt2rM2MCDe7m8/LSy+9lGa/+Nq1a8vHx8d6vXLlypKkF1980brM3d1dZcqUsRnN39fXV05OTvr999+1aNEijR49WmFhYUpMTLxjM/GbtWzZUrlz57Y5a7x06VIVKlRILVq0kCTVqVNHly9fVufOne84s0FGJCQkWP+HtGrVSvnz59fSpUut6xcuXKjChQunGtfg2WeftXku03rOChQooDx58lifs9jYWG3YsEGtWrVKNetDkyZNVKRIkVRnrm92t893586ddeXKFf3www+SpGvXrmn16tXq3LmzXF1dlS9fPpUtW1bz58/XzJkzb9syKVlya5E7jdGRvD7l4I2BgYE215Nb3pw8eVKSrK0YunXrpujoaOulZs2aio2NtXY9qVOnjtatW6f33nvP2mXqTmJiYvTDDz+oZcuWypkzp3XfPj4+KlOmTKrm9XXr1lWZMmVslr388stKSEhIswtM3rx5010LgAcXQR7AQ+PcuXOSbkwBl1KhQoUkSZcuXbJZnjzK+M38/PyUlJR02yaqaUnu27h///4014eHh2vcuHHq37+/pBsjx+/atcv6g7RChQppNkXv27evdR/Ozs7q2rWrNmzYYO0nL0kNGzbUrl271LNnT+sBiA8//FCbNm3S9u3bdfz48Ts2aZ8/f74OHjyoqVOnWpd9+OGH+uabb/Txxx9blx0/flx169ZVxYoVrYPP3a0SJUpYA37yoHfSjRkKDh48qNWrV2dof61atdK5c+dsLjfPKpBR7u7umjNnzi0D91tvvaXLly/r8uXLCgkJ0VNPPaXLly+rb9++6ty5s7p166bQ0FDt2rVL0o3m9q+++qq1/3NGXL161Toyf3pMnz5defPmVZcuXZSYmJhq/d18XgoXLpzmffn7+9tcT34tc+XKZbPcy8vLpl/w9u3bVaJECdWrV0/z58/X6dOnrQcE0qr5Vtzc3NSuXTutW7dOUVFRiomJ0cqVK/X6669bm20PGzZM06ZN04YNG1S+fHk1bNjwng7ySDcGfrx06ZLKly8v6cZgZZ07d9batWsVERGh69ev64svvtAbb7yRqvn43Txn4eHhio+PT/M1k268bilfs5vd7fOdfKAkud/26tWrde3aNetBPovFok2bNum5557TwIEDVahQIfXr1++2gT75MRw6dOiW20g3+qFLsjkAKKV+npIfR/L/v+QDE4899ph8fHysl+SxFJL70yd3LZg4caICAgLUqVOnVGNkpHTp0iXFx8dr6dKlNvv28fHR/v37U/XVv9X3jKQ0B+j09PRUbGxshg9kAniwEOQBPDSSp+NK+SNKuvGDW5J10LFkafXhPHr0qNzc3DI0jZr0fz8gbzX/b3h4uLVffLK8efNKuvGj9tChQzLGKCQkRM8995y1j/fChQtt5qzv1q2bypUrZ3OW6erVqzp16pTmzJmjK1euKDo6WgULFlTVqlVVsWJFm1YHaTlx4oTeeustvfvuuwoICFBcXJwuXLigHDlyqHXr1ho0aJAOHz5sfXylSpXSqlWr7rjfu/X000/riSee0J49ezJ0Ow8PDxUoUMDmkpXTVnl4eMjf31/+/v7y8vKSs7Oz/P39rc9LiRIl9NJLL6lXr1766quvtGPHjjT7xaZH7ty5bzkqf1r8/f01d+5chYaGKjg4ONWZ9Lv5vGTmKPXGGLVp00aFCxfW2bNntWXLFs2bNy9dYxqkpXPnzrp+/bq++eYbffvtt4qOjrZpDeHk5KQBAwboxIkTWrlypU6cOKE6depYp3u8G8n9/W8eaK9bt26Ki4vTV199pdWrV6eq4174+/vLyckpzddMuvG6pXzNkt3L8518oOSbb75RTEyMli5dqvr169u0UilcuLAWL16s06dPa9CgQZo1a5ZeeeWVW+6zYcOGcnNz05IlS247Hsby5cvl7e1tHXQuvZIPlKxbt07bt29PdUkea8Lf318fffSRzp49q8mTJ2vlypVq0KDBbWvy8/OTxWLRyy+/nOa+Uw5Ud6vvGen/Dprd7OLFi8qVK9dDMysEgLQx/RyAh0bjxo3l5OSkGTNmqHHjxjbrPv30U7m5uaWaqm7lypXq06eP9frJkye1Zs0a64/MW4mLi0u1/pNPPpHFYlGjRo3SvE25cuW0Zs0am2V//fWXdbq1smXL2qxL2eT0r7/+0t69exUTE2PTjDmlm0P/zW73w/T5559XeHi4Jk6cqLffflvXr1+XJGvTfBcXF3Xp0kU//vij8uXLp02bNmX5POXbtm3L8JRxn3/+eapBuSSl2T3gXnTv3l3NmjVTzpw5dfz4cZ09e1bbtm3TgQMHVKFCBbm5uVmb137wwQcqX7682rVrp0GDBt31PPdFihTRv//+q/j4+HQfnGjWrJlef/11jRkzRrVq1bJZdzefl8x06dIlnTt3Tm3btrUOOpeQkKD169ff1f6qVKmiihUrasWKFXJzc1Pjxo1tWj0kT5fn4uKi1q1by2KxqHXr1vr1118z3DpCknWav+eff14tW7a0Lk8e9O6zzz6Tm5ubmjVrZjPI3b3w9vZWnTp1tHr1ap04ccLmzPz333+v06dPpzlIoXTvz3eXLl300UcfadmyZfrhhx+0ePFi67qbpyLMly+fxowZo71791qb4qclX758evPNNzV16lSNGjXKZoDJZJMmTdJPP/2kcePGZfh/Qf369TV16lSFh4erWbNmNuuMMdb/r8m1+/r6ql+/fjp27Jg+/PBDXbx4Ufny5ZO7u7ukGy1ikuXIkUNVq1bVn3/+qWrVqlm3uXn/N9u6dasuXbpkPXiWkJCgTz75RLly5UrzQMrJkycVEBCQoccL4MFDkAfw0ChVqpSGDRumCRMmqHHjxmrfvr1cXV21cuVKrVy5UlOnTk3VNPiPP/7Qc889pw4dOujSpUuaMmWKnJ2dNWnSpNveV+fOnZUrVy49/fTTio+P14oVK7Ru3ToNGjTI2sw2LSl/jJYtW9am+emuXbvUqlUrPfXUU3J1ddWyZcusoS25aa6Hh0ea/Sd3796tpk2b6vjx43dsgn3hwgVduHBBERERkqRx48bp4sWLCggIUJ48eZQnTx7lzJlTvr6+kqTffvtNEydO1JUrV5QrV65MC/HHjh2z/h0TE2Oz7m7mfW/evLnef//9VMvTatqaln/++UdTpkzRE088ccuWFZL03XffKXfu3Nq5c6euX7+uUqVKydnZWQUKFNC0adNs+sPGxsYqd+7cOnbsmKKiopSQkHBXz1+9evUUGxurn3/+WfXq1Uv37ZKbk2/evNlm+d18XjJTnjx5VLRoUf3vf/9T6dKllTNnTn366aeKj4+/63127txZo0aNkqenp013EOlGn+oyZcqocuXKSkpK0owZM+Tp6ZmuM9K//vqrYmJiFBsbq+PHj+vrr7/Wli1b9Morr2jBggWptu/Ro4fat28vi8VyxxkwMuqDDz5QnTp1VKNGDQ0ePFglSpTQ/v37NXXqVFWrVk1BQUFp3u5en+/KlSurYsWKevfdd+Xn52cza8HJkycVGBio9u3bq3jx4jp+/Lg2b958x7PoEyZM0LFjxzR+/Hjt2LFD7dq1U4ECBXT+/HmtWLFCGzduVJcuXTRixIj0P0H/X7NmzVS3bl316NFDv//+u7Vv/J49e3Tu3DktW7ZM0o2m96+//rrKlCmjCxcu6IsvvtBjjz1mbS31yCOPyM3NTZ988okKFCggPz8/NWrUSO+9956aN2+uWrVqqVu3bsqfP79OnjypL7/8UsHBwaneV3Xq1NGgQYPk6uqqTz/9VPv379fcuXNtuhQl27Jli3VsBwAPMbsMsQcA94FSjFqfbMGCBebJJ580Hh4exsvLy9SqVcusXLnSZpvkkYhDQkJMz549jb+/v/Hy8jINGzY0oaGhd7zvkJAQU7p0aePp6Wk8PT1NtWrVbjuqdkrFihWzjpxujDGJiYlm4cKFxtfX10ybNs1ER0eb6tWrm+rVq5u9e/ema5/JI7tHRUXddrvvvvvO5M+f3zRv3tzkzJnTdO/e3fzyyy82o46nJS4uzly+fNkkJCRYl9WrV8/06NHjtrdr1aqVadq0qc2y241an5affvrJSDLh4eHWZSlHrZ80adIda0lMTDSSzMaNG40xxixdutRIMrt27TKBgYHG2dnZPPLII2bz5s1mwYIFxt3dPdU+YmJijJOTk5k3b57N8ptHrTfGmPj4eDNr1izj5+dnmjRpYj755BOTI0cOU6FCBbNmzZrb1pmWpKQkU7RoUZsRsZPdaWT35BHN0/pZkJHPS1r7T+tzeKvR3uvVq2eKFStmvb5nzx5Tu3Zt4+XlZQICAsz06dPN6NGjjSRz7NixdD22m124cMG4urqafPnypRqFferUqaZUqVLG3d3d5MuXz7Rq1eqOn/Xkx5F8cXd3N0WLFjVt27a1+fymFBcXZ/LkyWMKFy5s83kx5v/e+ynf6ykfd7KUI88bY8yff/5pXn75ZZM7d27j6upqSpYsaYYNG2aio6Nve9v0PN+388EHH6Q5Ov2VK1dMq1atTN68eY27u7spVaqUeeutt0xERMQd95mUlGRWrFhhmjRpYnLnzm1cXFxMvnz5TMuWLc23336bavtbvbfSWh4dHW0GDhxoAgICjKurqylcuLB57rnnzI8//mjdpl27dqZAgQLGzc3NFC1a1PTq1cucO3fOZt/z5s0zRYoUMe7u7mbkyJHW5Rs3bjR169Y1Xl5exsfHxzz++ONmzJgxNv+Dkz8f06dPNwEBAcbNzc1UrFgx1SwiyQ4ePGjzPwrAw4sgDwBpyEg4yArJQX7//v1m3LhxpkyZMsbf39/873//s25z9epV065dO2OxWEz9+vXNhx9+aEaMGJFmAE7v5aOPPjINGzY0PXr0MElJSebPP/80LVq0MC4uLtZtXF1djbe3t/H39zf58uUzfn5+xtXV1UgyefLkMTExMdYa0wryhw8fNh988IGZN2+emTVrlvH19bWZPsuY/wszBw8etC5r0KCBzXRpO3bsMHv37jUHDhwwffr0MZ6enjbTdaUM8rcSFhZm9uzZYw4cOGBmzpxpJJn9+/cbY/5vmjRJ5plnnjHr16+3TsWWPIXbypUrrVPnHThwwLz11ls2+0iWHOSvXbtmpkyZYkqUKGHc3NzM6NGjrXUfPHjQ1KlTx0gypUqVSjWF2J3MnDnT+Pj43HJKQGQPZ86cMa6urrc8MIWHx60OON9Kp06dTNWqVbOuIAAOg6b1AJCN7dy5U4sXL1b79u3Vp08fmwH2vLy8tHTpUnXt2lUffPCB4uLiNHjw4Hvq7507d261atVKRYoUkcViUfny5bVmzRpdv35dp0+f1vXr15WYmGi9SDf66js5OcnJyUn+/v6p+oOmFBMTo0GDBikpKUkWi0XlypXToEGDbLYpUqSIDh8+bNPHN2XT79dff11///23pBsDUqU1YFt6zJgxQ7Nnz5Z0Y/qtAQMG6PHHH5d0Y8qq7du3a968ealG4G/cuLGaNGmiwMBA61RZyft4++23rftIycPDQ7/88oteeeUV9e/f36ZZf7ly5fTjjz9q06ZN2r9/f6opxO6ka9euCgkJ0dixYzV9+vQM3Rb3z4wZM+Ts7KwePXrYuxQ4kL1792rZsmVat26dvUsBkA1YjLnN6EYA8JDaunWrGjRooPnz56tz5852q8PcNOgS0paYmJhq6q7M3M/d9lm3l4MHD6p69epavnw5/WizmXnz5unff//VmDFj9Pbbb2vMmDH2Lgl2ZrFY1KlTpzTHUrhZdHS0qlatqldeeUXjx4+/P8UByNYc55cJADyECPF3lhkh/nb7caQQL0mPPvrobefnhv0MGjRI7u7uGjZsmEaPHm3vcuBAcuTIoUOHDtm7DADZCGfkAQAAAABwIBnvTAgAAAAAAOyGIA8AAAAAgANxrI5/91FSUpLOnj0rHx8f+qgCAAAAALKcMUZRUVEqVKjQbWfjIcjfwtmzZxUQEGDvMgAAAAAAD5lTp06pSJEit1xPkL8FHx8fSTeeQF9fXztXAwAAAAB40EVGRiogIMCaR2+FIH8Lyc3pfX19CfIAAAAAgPvmTt27GewOAAAAAAAHQpAHAAAAAMCBEOQBAAAAAHAg9JEHAAAAgAdMYmKi4uPj7V0GUnB1dZWzs/M974cgDwAAAAAPCGOMzp8/rytXrti7FNyCv7+/ChQocMcB7W6HIA8AAAAAD4jkEJ8vXz55eXndU1hE5jLG6Nq1a7pw4YIkqWDBgne9L4I8AAAAADwAEhMTrSE+d+7c9i4HafD09JQkXbhwQfny5bvrZvYMdgcAAAAAD4DkPvFeXl52rgS3k/z63MsYBgR5AAAAAHiA0Jw+e8uM14cgDwAAAACAAyHIAwAAAACQQcWLF9f48ePtct8EeQAAAACAXXXu3FkWi0Uff/xxqnULFiyQiwvjtN+MIA8AAAAADzCL5f5e7paLi4vefvtt6/RsuDWCPAAAAADA7mrVqqUCBQpoyJAh9i4l23ugg3xMTIzq16+vMmXK6IknntC+ffvsXRIAAAAAIA0uLi6aNWuWFi9erO3bt99yu/Xr1+upp56Sp6encubMqfbt29ucxa9fv77eeOMN9ezZUx4eHlqzZo3GjBmj0qVL66uvvlLJkiXl4+OjwYMH6/r16+revbt8fX1VtGhRLVq0yLqfS5cuqXv37goICFCOHDn0zDPP6J9//snS5yC9Hugg7+Lioi+++EKHDx9W7969NWXKFHuXBAAAAAC4hQYNGqhdu3bq3bu3EhISUq3fuHGjWrRooaefflrbt2/X0qVL9fvvv+vFF1+02e6HH36Qp6enfvzxR1WpUkWSdOHCBS1fvlwrVqzQ22+/rffff1916tSRv7+/tm7dqgYNGqh79+7WgwJhYWGSpIULF2rTpk26cOGC+vTpk8XPQPo4TJDft2+fqlSpoh07dtgsN8Zo7NixKlSokLy9vdW6dWtdvHhR0o0gnzdvXiUlJen06dOqUKGCPUoHAAAAAKTTtGnTdPr0aU2fPj3VunfffVfNmzfXtGnT9OSTT6p58+Zavny5fvrpJ23bts26nZubm6ZNm6bq1aurUKFCkqTr169r9uzZevLJJzV8+HCVKFFCsbGxmjJliqpUqaLx48crNjZWe/bskSTVqVNHn3zyiZ555hnVqFFDPXv21K5du+7Lc3An2T7I79mzR4GBgapZs6Z+//33VOuDg4M1Y8YMzZkzRxs2bNChQ4fUqVMn6/p33nlHuXLl0oYNG9S7d+/7WToAAAAAIIPy5cunCRMmaOzYsTp9+rTNut9++02NGze2WVaxYkX5+fnpzz//tC6rVq2aLClG3itcuLBy585tvV6kSBHr2XpJ1sB/6dIlSVJCQoJmzZqlVq1aqWzZsho4cKCuXLmSKY/xXmX7IL9y5Uq5u7trzZo1qdYlJSUpODhYI0eOVMuWLfX0009r2rRp+u6773Ts2DFJN47Y/Pfff2rTpo1ee+21+10+AOAhcr9HBbbXqMIAAGS1Hj16qHz58urfv79NIHd3d5eTU9oxNi4uzvp3jhw5Uq1POYWdk5OTXF1drdednZ0l3Wj1LUldu3bVjBkz1LFjR61du1azZ8+++weUybJ9kH/33Xe1ePFilSxZMtW6/fv3Kzw8XM2aNbMuq1evnpycnGyaPDg5Oal79+63bQYRGxuryMhImwsAAAAA4P5zcnLS7NmztXr1am3atMm6vGLFitq4caPNtvv371dERISqVauWqTWsXLlSAwYM0EsvvaTSpUvr77//ztT934tsH+RTNoe42dGjRyVJJUqUsC7z9PRU3rx5dfr0aR0+fFjh4eGSpNWrV6tq1aq33NfEiRPl5+dnvQQEBGTSIwAAAAAAZFTlypXVp08fLV261Lps9OjR+uabbzR48GDt3r1b69ev16uvvqrGjRurVq1amXr/+fPn1xdffKG9e/dq4cKF+uyzzzJ1//ci2wf524mOjpaTk5Pc3d1tlnt5eSk2NlaXLl3SU089pdKlS2vhwoX6+OOPb7mv4cOHKyIiwno5depUVpcPAAAAALiNd999VwUKFLBeb9Cggb788ktt3LhRNWvWVKdOnVS/fn2tWrUq0+/7008/1ZkzZ1SzZk2tXLkyW81vbzHJHQCyuePHj6tEiRLavn27ateuLUlasWKF2rRpo/j4eJv+DoUKFdLgwYM1cODAu76/yMhI+fn5KSIiQr6+vvdcPwDgwedo/c4d4xcAACC9YmJidOzYMZUoUUIeHh72Lge3cLvXKb051KHPyBcuXFiSbEYyjI2N1cWLF9PsUw8AAAAAgKNz6CBfpUoVeXp6asOGDdZl27Ztk8ViUd26de1YGQAAAAAAWcPlzptkX56enurVq5dGjRqlokWLKkeOHOrXr5969OihXLly3dU+Q0JCFBISosTExEyuFgAAAACAe+fQQV6SJkyYoOvXryswMFDOzs7q0KGDgoOD73p/QUFBCgoKsvZNAAAAAAAgO3GYIF+8eHGlNS6fu7u7Zs2apVmzZtmhKgAAAAAA7i+H7iMPAAAAAMDDhiAPAAAAAIADcZim9fcLg90BAJB9WcZa7F1ChpjRqbsFAgBwrzgjn0JQUJDCwsIUGhpq71IAAAAAAEiFIA8AAAAAgAMhyAMAAAAAkIatW7fKYrHo9OnT9i7FBkEeAAAAAGBXnTt3lsVikcVikaurq4oVK6bXX39df/31l71Ly5YI8gAAAADwILNY7u/lLj399NM6fPiw9u/fr9mzZys2NlZVqlTRV199lYlPxoOBUetTYNR6AAAAALj/PD09Vbp0aUlSuXLl1KxZM4WEhKh9+/Z64oknrOvAGflUGLUeAAAAALKHoKAglS1bVn379pXFYtGOHTts1jdu3FidOnWSJFksFs2aNUuBgYHy8vJSxYoVtXfvXm3atEmPPfaYcuTIoRYtWig8PNx6+6ioKAUFBalgwYJyc3PTY489ps8+++yW9Rw/flyvvvqqChYsKD8/P73wwgu6ePFi1jz42yDIAwAAAACyrQYNGig8PFxlypTRqlWrrMvDw8O1detWvfbaa9ZlkyZN0gsvvKCNGzcqKSlJbdu2Vf/+/TVz5kwtX75cP//8s9577z1JkjFGzz33nNavX6+PP/5Yu3btUuvWrdWhQwdt3LgxzVp27typokWLasWKFVq9erVCQ0M1atSorH0C0kDTegAAAABAtuXv76/IyEi1b99eCxcu1Pvvvy9JWrVqlfLly6dnnnnGuu1LL72kdu3aSZKGDBmizp0768svv1SDBg0kSS+++KJ27twp6caI9D/++KN+++03Va1aVZJUpUoVhYWF6b333lOjRo1S1fLqq6/q1Vdftbl+q9CflTgjDwAAAADIts6fP698+fKpQ4cOOnbsmPbt2ydJ+uKLL9S+fXs5Of1frH3iiSesfwcEBEi6Ec6TFSpUSJcuXZIk/fbbb8qZM6c1xCerW7eu/vzzzzRruXr1qqZMmaKmTZuqZMmSmj59uq5cuZIpjzMjCPIAAAAAgGwpKSlJP/zwgxo0aKBSpUrpqaee0sqVK3Xp0iVt2bJFHTp0sNnexeX/Gp0nB3xXV1frMmdnZxljJEnu7u42BwFuFhcXl+byFi1aaPXq1erbt682b96skSNH3tPju1s0rU+BUesBAAAAIHt477339N9//ykoKEiS1KFDB82ZM0cBAQF67LHHVLFixbved8WKFXXp0iXt3btXlSpVsi7fvn27qlWrlmr7//77T9u2bdP69ev17LPPSpLd5rknyKcQFBSkoKAgRUZGys/Pz97lAAAAAMBD4fr16zpy5IgSEhJ09OhRzZ8/X99//71WrVql/PnzS5LatGmjAQMGaNasWTaD3N2N+vXrq379+nrllVc0depUFS1aVKtXr9a3336bZr93Hx8feXl5adGiRSpYsKA2b96sTZs2ydvb+57quBs0rQcAAAAA2N3PP/+sMmXKqGLFiurTp4/y5Mmjffv2qWHDhtZt8uTJoyZNmmjfvn02g87dra+++kq1a9fW66+/rqeeekrr16/X2rVrVbdu3VTburq6asGCBfrpp59Us2ZN/fHHH+rZs+c913A3LCa5gwBsJJ+Rj4iIkK+vr73LAQA4AIvF3hVkjCP+ArCMdawn2Yx2wCcZgMOKiYnRsWPHVKJECXl4eNi7nCzTq1cv/fPPP/rhhx/sXcpdud3rlN4cyhl5AAAAAIBDuH79uj7//HN16dLF3qXYFX3kAQAAAADZ2rVr17Rv3z7973//U758+fTKK6/YuyS7IsgDAAAAALK1//77T40aNVL58uW1evVqm2nmHkYP96MHAAAAAGR7RYoU0dWrV+1dRrZBH/kUQkJCVL58+TTnDQQAAAAAwN4I8ikEBQUpLCxMoaGh9i4FAAAAAIBUCPIAAAAAADgQgjwAAAAAAA6EIA8AAAAAgAMhyAMAAAAA4EAI8gAAAAAAOBCCPAAAAADA7iIiIvT222+rbNmy8vDwUO7cudW6dWvt3bv3vtXw999/37f7uhcu9i4AAAAAAJB1LGMt9/X+zGiT4duEh4erTp06kqQxY8aoYsWKCg8P16effqqaNWvq22+/VaNGjTK7VBtffPGFAgMDZUzG67/fCPIphISEKCQkRImJifYuBQAAAAAeCm+++aYSExMVGhoqPz8/6/J69erJ3d1dHTp00LFjx+Tp6ZllNcTGxmbZvjMbTetTCAoKUlhYmEJDQ+1dCgAAAAA88MLDw7VixQqNGzfOJsQnGzdunMLDw7Vq1Sp17txZjRo10sKFC1WsWDHlzJlTXbt2VVxcnHX7s2fP6qWXXlKOHDkUEBCgt956y7o+KSlJo0aNUtGiReXh4aEKFSro4sWL6ty5s1577TVJksViUfHixSVJxhhNmjRJRYoUka+vr5o0aaLDhw9b76t48eKaMGGCRowYobx588rX11ddunTRtWvXsvAZI8gDAAAAAOzot99+U2Jioho3bpzm+kKFCqlo0aLavXu3JGn//v1av369vvrqK02YMEH/+9//9L///U+SlJiYqObNm8tisWjr1q2aPXu2lixZokmTJkmSZs2apY8++kizZ8/WL7/8ol69ekmSpkyZoqlTp0qSDh8+rG3btkmS3n//fc2aNUszZ87U1q1b5ePjo+eee07x8fHW+mbPnq3o6GitX79es2bN0qpVqzRq1KisebL+P5rWAwAAAADs5tKlS5KknDlz3nKbQoUKKSoqStKNs+rz58+Xh4eHnnzySS1ZskQ//vijevbsqS+++EKXLl1SaGioXF1dJUkDBgzQnDlzNGrUKP39998qWLCgnn32WTk7O+uJJ56w3kf+/PklSaVLl5YkxcXFady4cVqxYoWaNm0qSfrkk0+UJ08e/frrr6pVq5YkqWTJkvrwww8lSVWrVtXJkyc1adIk64GBrMAZeQAAAACA3eTIkUOSdPr06Vtuc/bsWeXKlUuSVL58eXl4eFjXlShRQhcvXpQk7d69W2fPnpWPj488PDzk4eGht99+W8ePH5ckvfHGG7pw4YIqVKiguXPnKiYm5pb3efjwYUVFRemFF16w7qtw4cKSZN2fJNWuXdvmdk8++aSioqIUHh6e/ichgzgjDwAAAACwm6pVq0qStm/frvbt26daf+7cOZ08eVI1atTQ119/bT3TnszFxcU60nx8fLwee+wxrVixIs37euKJJ3T48GF9/PHHGj16tIKDg7V9+3br2fibJTef/+qrr1SqVCmbdQULFrT+7ebmZrMuOjpaFovFeoAiK3BGHgAAAABgN0WKFFGLFi00ZswYXb16NdX6t99+W4ULF1aLFi3uuK9y5crp2LFjyp8/v8qVK2dzSZYzZ069/fbbCgsL0/nz562h38npRjxOSEiQdKOJvYuLi86dO5dqXzcPyvfHH3/Y1LBp0yaVLVvWptVAZuOMPAAAAADArj7++GPVqlVLtWvX1jvvvKNHH31U586d0yeffKK1a9dq/fr1qc58p6V9+/YaPXq0XnzxRY0ePVre3t7auHGjcufOre7du+uDDz5QwYIF9fjjjyssLEzXr19XmTJlJEkBAQGSpEWLFqlSpUqqUqWKunXrprfeeksuLi6qXLmyDh06pG+//VaLFy+23ufatWs1YcIENWvWTFu3btXcuXM1d+7crHmi/j+CPAAADyuLxd4VZNwYexcAAMgKAQEBCg0N1fjx49W/f3+dP39eOXPmVKNGjRQaGmpzRv12fHx89N1332nAgAFq2rSpfHx8VKNGDU2ePFmS5OXlpSFDhujixYsqVqyYpk+fbh3Irnbt2urYsaP69u2rihUraufOndYB6wYPHqzr16+rVKlS6t+/v8199u3bV7t379a7776rPHnyaMKECerUqVPmPTlpsJjkzgSwERkZKT8/P0VERMjX19fe5QAAHICj5WIjBytYkmWMvSvIGDOan1kA7p+YmBgdO3ZMJUqUyNJm3fg/xYsXV9euXTVy5Mh03+Z2r1N6cyh95AEAAAAAcCAEeQAAAAAAHAhBHgAAAAAAB8JgdymEhIQoJCREiYmJ9i4FAAAAAJCNHT9+3C73yxn5FIKCghQWFqbQ0FB7lwIAAAAAQCoEeQAAAAB4gDAxWfaWGa8PQR4AAAAAHgCurq6SpGvXrtm5EtxO8uuT/HrdDfrIAwAAAMADwNnZWf7+/rpw4YIkycvLSxaLxc5VIZkxRteuXdOFCxfk7+8vZ2fnu94XQR4AAAAAHhAFChSQJGuYR/bj7+9vfZ3uFkEeAAAAAB4QFotFBQsWVL58+RQfH2/vcpCCq6vrPZ2JT0aQBwAAAIAHjLOzc6YERmRPDHYHAAAAAIADIcgDAAAAAOBACPIAAAAAADgQgjwAAAAAAA6EIA8AAAAAgAMhyAMAAAAA4EAI8gAAAAAAOBCCPAAAAAAADoQgDwAAAACAAyHIpxASEqLy5curWrVq9i4FAAAAAIBUCPIpBAUFKSwsTKGhofYuBQAAAACAVAjyAAAAAAA4EII8AAAAAAAOhCAPAAAAAIADIcgDAAAAAOBACPIAAAAAADgQgjwAAAAAAA6EIA8AAAAAgAMhyAMAAAAA4EAI8gAAAAAAOBCCPAAAAAAADoQgDwAAAACAAyHIAwAAAADgQAjyAAAAAAA4EII8AAAAAAAOhCAPAAAAAIADIcgDAAAAAOBACPIAAAAAADgQgjwAAAAAAA6EIA8AAAAAgAMhyAMAAAAA4EAI8gAAAAAAOJAHNsgnJiZqwIABKlu2rB555BGtXr3a3iUBAAAAAHDPHtggHx0drSeffFJ//fWX1q1bp27duikpKcneZQEAAAAAcE8cIsjv27dPVapU0Y4dO2yWG2M0duxYFSpUSN7e3mrdurUuXrwoSfLz81P79u1lsVhUunRpSVJcXNx9rx0AAAAAgMyUrYP8nj17FBgYqJo1a+r3339PtT44OFgzZszQnDlztGHDBh06dEidOnVKtd2SJUtUpUoVeXh43I+yAQAAAADIMi72LuB2Vq5cKXd3d61Zs0YNGza0WZeUlKTg4GCNHDlSLVu2lCRNmzZNzZo107Fjx1SiRAnrsiVLlmjt2rX3vX4AAAAAADJbtg7y7777riwWi44fP55q3f79+xUeHq5mzZpZl9WrV09OTk7atWuXSpQoobfeekunT5/W9u3b5e3tfdv7io2NVWxsrPV6ZGRkpj0OAAAAAAAyS7ZuWm+xWG657ujRo5JkPfMuSZ6ensqbN69Onz6tsLAw7dixQ0uWLLljiJekiRMnys/Pz3oJCAi49wcAAAAAAEAmy9ZB/naio6Pl5OQkd3d3m+VeXl6KjY3VH3/8oQMHDqhMmTIqXbq0SpcurS1bttxyf8OHD1dERIT1curUqax+CAAAAAAAZFi2blp/O+7u7kpKSlJCQoJcXP7vYcTExMjLy0tt27ZV27ZtM7S/lAcFAAAAAADIbhz2jHzhwoUlSadPn7Yui42N1cWLF1WyZEl7lQUAAAAAQJZy2CBfpUoVeXp6asOGDdZl27Ztk8ViUd26de1YGQAAAAAAWcdhm9Z7enqqV69eGjVqlIoWLaocOXKoX79+6tGjh3LlynXX+w0JCVFISIgSExMzsVoAAAAAADKHwwZ5SZowYYKuX7+uwMBAOTs7q0OHDgoODr6nfQYFBSkoKEiRkZHy8/PLpEoBAAAAAMgcFmOMsXcR2VFykI+IiJCvr6+9ywEAOIDbzJqaLRk5WMGSLGPsXUHGmNH8zAIApF96c6jD9pEHAAAAAOBhRJAHAAAAAMCBEORTCAkJUfny5VWtWjV7lwIAAAAAQCoE+RSCgoIUFham0NBQe5cCAAAAAEAqBHkAAAAAABwIQR4AAAAAAAdCkAcAAAAAwIEQ5AEAAAAAcCAE+RQYtR4AAAAAkJ0R5FNg1HoAAAAAQHZGkAcAAAAAwIEQ5AEAAAAAcCAEeQAAAAAAHAhBHgAAAAAAB0KQT4FR6wEAAAAA2RlBPgVGrQcAAAAAZGcEeQAAAAAAHAhBHgAAAAAAB0KQBwAAAADAgRDkAQAAAABwIAR5AAAAAAAcCEEeAAAAAAAHQpBPgXnkAQAAAADZGUE+BeaRBwAAAABkZwR5AAAAAAAcCEEeAAAAAAAHQpAHAAAAAMCBEOQBAAAAAHAgBHkAAAAAABwIQR4AAAAAAAdCkAcAAAAAwIEQ5AEAAAAAcCAE+RRCQkJUvnx5VatWzd6lAAAAAACQCkE+haCgIIWFhSk0NNTepQAAAAAAkApBHgAAAAAAB0KQBwAAAADAgRDkAQAAAABwIAR5AAAAAAAcCEEeAAAAAAAHQpAHAAAAAMCBEOQBAAAAAHAgBHkAAAAAAByIy73cODY2VidPntR///0nd3d35cmTR0WKFMms2gAAAAAAQAoZDvLXrl3TggULtGTJEu3Zs0eSlDt3bsXExOjKlSvKmzevGjZsqL59++qpp57K9IIBAAAAAHiYZahp/VdffaWSJUtq5cqV6tWrl/7++2/FxMTozJkzunTpkmJiYrRq1SqVLl1arVu31ksvvaTw8PCsqj1LhISEqHz58qpWrZq9SwEAAAAAIBWLMcakd+MnnnhCn376abpCbmxsrIKDg+Xi4qJhw4bdU5H2EBkZKT8/P0VERMjX19fe5QAAHIDFYu8KMsbIwQqWZBlj7woyxoxO988sAADSnUMz1LR+9+7dOn78uCTJGCPLbX6xXLt2TSNHjlRiYmJG7gIAAAAAANxGhprWu7i4qEqVKpKkYsWK3Xbbpk2b6scff5Szs/PdVwcAAAAAAGzc9fRzKVvkT548WadOnbJeP3jwoEqWLHn3lQEAAAAAgFQyPGq9MUYffPCBIiIiNHToUEk3zr7PnDlTCxYs0I4dO3Tp0iV5e3szFR0AAAAAAJnsrs7I58iRQ05OTvLz89OyZcuszec7deqkzp0765tvvlGzZs0ytVAAAAAAAJDBIJ+QkCCLxaJu3brJ19dXI0aMUIECBfTUU0/JYrFo2LBhunr1qsaPH6+uXbtmVc0AAAAAADy00h3kt2/frgoVKqRanjxyfXKf+S5duigxMVFPPfVUJpUIAAAAAACSpTvIJyYmauDAgWmus1gsslgsioqK0rhx41S4cGGtXbs204oEAAAAAAA3pDvI169fX926dZMxRm+99ZYuXbqkwMBAHT16VKtXr5YxRi1btlSPHj00cuRIzZ07NyvrBgAAAADgoXRXg93Vr19fHh4eatWqlT788EM9+uijkqQ2bdpo8ODBatWqlbZt26a4uLhMLRYAAAAAgIddhqefs1gsatasmby8vNS+fXvrcg8PD/Xq1UuS5OPjo7Jly2rXrl2qW7du5lULAAAAAMBDLsNBPj4+XosWLdITTzyhRYsWyWKxyMPDQzNnztShQ4f0yCOPyGKx6Omnn9bFixezomYAAAAAAB5aGQ7yzz77rFatWiVXV1etWrVKknTt2jVFRETo77//Vnx8vFq2bKnevXurdu3amV4wAAAAAAAPswwH+dWrV992fVhYmBYsWKBmzZpp69atqlq16t3WBgAAAAAAUrCY5AngM1lUVJR8fHyyYtf3RWRkpPz8/BQRESFfX197lwMAcAAWi70ryBgjBytYkmWMvSvIGDM6S35mAQAeUOnNoek+I1+5cmVZMvALxdvbW3379lVgYGC6b5MdhISEKCQkRImJifYuBQAAAACAVNJ9Rn7btm0Z2vHevXs1duxY/ffff3dVmL1xRh4AkFGckc96nJEHADzI0ptDM9y0/ujRo7dd7+/vr1y5cikxMVGurq5KSkrKyO6zDYI8ACCjCPJZjyAPAHiQZXrT+mQNGzaUxWJRWvnfYrGoU6dOGj16tP777z8GugMAAAAAIJNlOMjPmTNH1atXl7+//223i4yM1Lx58+62LgAAAAAAkAanjN5gzJgxOnnypPX6//73P7Vu3VpHjhyxLtu5c6dq1qyptWvXZk6VAAAAAABA0l2ckU9uUj9mzBg1a9ZMgYGBOn78uJ5++mmNGjVK+fLlU+/evTV79my9/PLLmV4wAAAAAAAPswwF+RMnTlinoMuTJ49atmypJk2a6OOPP1b37t3Vtm1b/fLLL/rxxx9Vs2bNLCkYAAAAAICHWbqa1v/7779q2rSpnnjiCR0/flyS1KdPHx05ckQbN25UpUqVFBERoW3btql79+4aMWKErl27lpV1AwAAAADwUEpXkM+fP78CAwN18uRJFStWTK+99pp27NghX19f5cqVS926dVO9evW0d+9ehYSEqGTJkmrWrJkSEhKyun4AAAAAAB4q6R7s7vXXX7fOY/f888+rffv2euONNxQfH6/u3btrzJgxatiwocLCwvTJJ5/I2dlZQ4cOzbLCAQAAAAB4GGV41HpJeuWVV/TXX3+pQIECOnHihKKjo9WnTx+1a9dOzz33nC5fvqxPP/1Uixcv1pkzZzK7ZgAAAAAAHloZDvJdu3ZVgQIF5Onpqffee08REREqWrSoJGn69OmqVKmSTp48qZIlS+qff/5R4cKFM71oAAAAAAAeVhkO8m+88YbmzZunH3/8UZLk6elpXefm5qaVK1eqcuXKGjhwoP7888/MqxQAAAAAANxd0/off/xR3bt3V/v27TV58mTt2rXLZv28efM0e/Zsm5APAAAAAADuXYbmkb9Z06ZNVa5cOe3Zs0ezZs2Ss7OzhgwZIkkaOHCgFixYoEqVKmVWnQAAAAAAQBkI8uHh4cqTJ4/1epUqVdSxY0fr9ffff19BQUGyWCyaM2eO2rRpk7mVAgAAAACA9AX56OhoFSxYUIULF1a1atX0999/KyIiQnv27NGePXv0zTffaPv27erfv78uXryocePGqV69eipTpkxW1w8AAAAAwEMlXUE+R44cioyM1N69e/X999/rzz//VL9+/eTu7q4ePXqoY8eOWrJkiXWe+f79+6tJkybavXu3cuXKlaUPAAAAAACAh0m6B7vz8PCQMUZjxoxRWFiYxo8fryeeeEJdunTRyy+/bA3xkvTBBx+oXLlyGjduXJYUDQAAAADAwyrdQf7YsWNq166dOnfurPDwcM2ePVsLFizQ559/Lkl66qmn1LNnT124cEFHjx5VuXLlNH78+CwrHAAAAACAh1G6g3zJkiX1559/qlChQrp8+bKMMZoyZYreeOMNSdKJEydUvHhx1axZU2+++aacnZ2VI0eOLCscAAAAAICHUbpHrX/ttddksVhkjNG4ceN0+fJl/fHHH/rhhx/Uq1cvWSwWDRs2TAEBAerYsaNmzpyZlXUDAAAAAPBQSvcZ+aZNm+rZZ59Vs2bN1LRpU8XHx8vT01NeXl6qXr26oqKiJEl//vmnihcvnq2CfFxcnGbPnq1XX33V3qUAAAAAAHBP0h3k27dvr1KlSumzzz5T3bp1lS9fPhUpUkSlSpXS4MGDZYxRy5Yt9fnnn2vLli1avHixLl68mJW1p1ulSpW0fv1668EGAAAAAAAcVbqD/B9//KHWrVurSZMmKlCggCRp2LBhGj58uAIDA+Xj46NmzZqpT58+Klq0qFq3bm0dCC+z7Nu3T1WqVNGOHTtslhtjNHbsWBUqVEje3t5q3bq1zUGEn3/+Wf3798/UWgAAAAAAsId095GvWLGiTp06JReXGzcZOnSonnjiCdWvX1+xsbF6+eWX1bt3b+v2gYGBOnHiRKYUuWfPHk2aNElr1qzR9evXU60PDg7WjBkztGDBAuXOnVtdu3ZVp06dtG7dOkmSv79/ptQBAAAAAIC9pTvIS7KG+Lp162rz5s2SpHfffVeS9NFHH9ls27Bhw8yoT5K0cuVKubu7a82aNan2m5SUpODgYI0cOVItW7aUJE2bNk3NmjXTsWPHVKJEiUyrAwAAAAAAe0t3kD979qykG83Yf/rpJ50+fVpubm5pbmuxWJQnTx65urpmSpHvvvuuLBaLjh8/nmrd/v37FR4ermbNmlmX1atXT05OTtq1axdBHgAAAADwQEl3kC9WrJh1+jljjMqUKXPb7S0Wi8aPH6+hQ4fec5EWi+WW644ePSpJNoHd09NTefPm1enTp9N9H7GxsYqNjbVej4yMvItKAQAAAADIWuke7C4+Pl5xcXGKj4+XxWJRdHS04uPjb3lZtmyZJkyYkJW1S5Kio6Pl5OQkd3d3m+VeXl42wfxOJk6cKD8/P+slICAgs0sFAAAAAOCepTvIp5TyLPnnn3+uhIQE6/VKlSrdl+ne3N3dlZSUZHPfkhQTEyMvLy/r9fr162vNmjW33M/w4cMVERFhvZw6dSrLagYAAAAA4G7ddZBPtnHjRlWqVEkDBw7U/v37rcuvXLmiPHny3Ovu76hw4cKSZNOMPjY2VhcvXlTJkiXTvR93d3f5+vraXAAAAAAAyG7uKsgbYyRJs2fPVvv27fXaa6/pn3/+UeXKla3bVK1aVf/++2/mVHkbVapUkaenpzZs2GBdtm3bNlksFtWtWzfL7x8AAAAAgPspQ9PPJRs9erRcXFzUuXNndezY0aYJe0JCgmbNmqUuXbrIx8cn0wq9FU9PT/Xq1UujRo1S0aJFlSNHDvXr1089evRQrly5Mry/kJAQhYSEKDExMQuqBQAAAADg3mQoyA8fPlzTp09XuXLldPToUVWpUkXPP/+8dcT4DRs2qE+fPrJYLKpTp47NGfqsNGHCBF2/fl2BgYFydnZWhw4dFBwcfFf7CgoKUlBQkCIjI+Xn55fJlQIAAAAAcG8sJrmdfDoMHz5cly9fVps2bXTo0CHt2LFD33//vYoUKaICBQrol19+0ciRI/Xmm2/KxeWuTvZnG8lBPiIigv7yAIB0uc1sqdmSkYMVLMkyxt4VZIwZne6fWQAApDuHZriPfK5cudSgQQP17NlTixYt0vDhwxUWFqYLFy7IGCMvLy+HD/EAAAAAAGRXdz1q/e+//64aNWpoxYoV2rFjh3bv3q1ly5ZpxowZql69us0o8gAAAAAAIHPcVZD/7bff1Lx5c/Xo0UM7d+5UtWrVJElNmzbV3r17VbZsWVWvXl2//fZbphZ7P4SEhKh8+fLWxwQAAAAAQHaSoT7ye/bskXRjyreoqKjbjkr//vvvq3LlynrmmWfuvUo7oI88ACCj6COf9egjDwB4kGVJH/l33nlHBQoUkKQ7Ti03aNAgnT9/XjNnzszIXQAAAAAAgNvIUJCvX7++Hn/8cXXt2lU7duxQfHx8qm3+/fdfLViwQE8++aQ+/PBDNW3aNNOKBQAAAADgYZeh4eWHDBmiwMBAzZw5U23atNGVK1dUrFgx5cqVS7Gxsbpw4YLOnTun6tWra8CAAWrbtq2cnZ2zqnYAAAAAAB46Geojn9I///yjI0eO6PLly3Jzc1PevHlVqVKlOza7dwT0kQcAZBR95LMefeQBAA+y9ObQe5rwvVSpUipVqtS97CLbCQkJUUhIiBITE+1dCgAAAAAAqdz1PPIPqqCgIIWFhSk0NNTepQAAAAAAkApBHgAAAAAAB0KQBwAAAADAgRDkAQAAAABwIBka7K5jx47p3jZHjhzq1q2bKleunOGiAAAAAABA2jIU5JcsWaIPP/xQTk53PpG/e/duvfzyy/rnn3/uujh7YNR6AAAAAEB2lqF55J2cnJSQkJCuIB8VFSV/f38lJCTI4mgT64p55AEAGedoX3fMI5/1mEceAJARWTKP/M2BfOnSpWmetXZ1ddWrr76q2NhYGWMcMsQDAAAAAJBdZWiwu5tP3nft2lW7du3Szp071a1bN+vfPXr0kCQ5Oztr8uTJmVstAAAAAAAPubtuWu/p6anr169Lknx8fBQVFZXqb0dG03oAQEY5WiM0mtZnPZrWAwAyIr05NENn5G9uJp+evwEAAAAAQOa666b1AAAAAADg/svQYHfbt2+3jlhvjFH37t1ljFFMTIzN35999pnatWuXJQUDAAAAAPAwy1CQP378uL744gtNmjRJc+fOtY5aX7t2bes2tWvXVsmSJTO3yvuIeeQBAAAAANlZuge7++yzz9SxY0e9+uqrmjNnjry8vLK6NrtisDsAQEY52jAxDHaX9RjsDgCQEZk+j7wxRh9//LG6deumZcuWKTQ0NF23mzZtWnrvAgAAAAAA3EG6g3z79u2tf3t5ecnPzy9LCgIAAAAAALeWoT7yyf755x+NHj06s2sBAAAAAAB3kKHp55INGTIks+sAAAAAAADpkO4z8m+//bb1b2OMzfW05MyZU23btlVAQMDdVwcAAAAAAGykO8hfv37d+rfFYrG5npadO3dq/vz5CgsLu/vqAAAAAACAjXRPP3czZ2fnO86zfunSJeXLl89h52Nn+jkAQEYx/VzWY/o5AMCDLL059K76yKd09uxZDRkyRAcPHrQuM8boLo4RAAAAAACA27inIH/hwgX17t1bpUqV0p49e3TlyhXruvj4eHXr1u1e67vvQkJCVL58eVWrVs3epQAAAAAAkMpdTT+XfKY9Pj5esbGx+vXXX1WhQgWbbQoWLKg5c+bce4X3WVBQkIKCgqxNGgAAAAAAyE4yFOSPHj2qK1euqE+fPtqzZ4+kG8E3Pj7eej2Zt7e3ypYtm3mVAgAAAACAjAX5fv366bfffpOHh4e+/fZbSdLJkydVtGhRm+1Onjypli1bavXq1ZlWKAAAAAAAuIum9Z9++qlatGhhve7q6qpjx45ZryckJMjNzY0QDwAAAABAFsjwYHeWFHPrpHU95TIAAAAAAJA5MnxGfvbs2Vq/fr31emJiot58803r9eRp54YOHaopU6ZkTpUAAAAAAEBSBoN8u3bt9Pfff9ssGzVqVKrtRo8eLTc3t3urDAAAAAAApJKhIP/qq6/aXDfGKCgoSLNmzcrUogAAAAAAQNoy1Ee+YsWK1jnkJSkpKckh54oHAAAAAMBRZSjIHzhwwCbIS0p1HQAAAAAAZJ0MBflbjUbv6+ub6pI/f36NGzcuU4oEAAAAAAA3ZHjU+rRs2bIl1bLVq1dr4sSJaQ6Gl52FhIQoJCREiYmJ9i4FAAAAAIBULCYDbeOdnZ0VHx8vJ6cbJ/ITExPl5uaWZug9cuSIypYtq4SEBIecVz4yMlJ+fn6KiIiQr6+vvcsBADgAR/u6M3KwgiVZxti7gowxo+mCCABIv/Tm0Aw1rc+I6OhoGWMcMsQDAAAAAJBdZSjIZ2Rgu1KlSqWacx4AAAAAANybDPWR37lzp7VZfbJbhXsfHx/5+PjcfWUAAAAAACCVdJ+RX716tR555BFJ0rVr19S+fXv98ssvSkpKyrLiAAAAAACArXSfkV+4cKF69uypjz76SE2bNlW+fPn0zDPPqHXr1mrWrNktb9exY8dMKRQAAAAAAGRw1Prly5drwIABatq0qT799FP9/fff6tKli0JDQ1WkSBGVLFnSducWizZv3pzpRd8PjFoPAMgoRxvflVHrsx6j1gMAMiK9OTRDQV6STp06pWeffVZFixbVV199JQ8PDw0cOFALFizQ+vXrVbNmzXsuPjsgyAMAMoogn/UI8gCAB1mWTT8XEBCgH3/8UT4+Ptq5c6ecnZ314YcfaujQoZo1a9Y9FQ0AAAAAAG7vruaRz5MnjwYPHqyYmBjrshEjRmjx4sWSpNjYWI0cOTJzKgQAAAAAAFYZCvLNmzdXYmKiJGnXrl365ptvbNZPmTJFgwYNkqurqyZOnKjY2NjMqxQAAAAAAGRsHvnvv/9eiYmJcnZ2tll+9uxZtWnTRn/88YfWrVsnJycnubu733KOeQAAAAAAcHcydEY+rWD+66+/qkqVKqpTp45cXFxUq1YtSZKXlxdBHgAAAACATJahIG9JYzjeYsWK6YsvvtCECROUlJRkDe8uLi4EeQAAAAAAMlmGmtanDOZnzpxRnjx5lD9/fkmSn5+f/vvvP+XOnVsJCQlpBn8AAAAAAHD37umM/Pfff6+KFStq8+bNkiR/f3/9+++/kqS4uLhUfekBAAAAAMC9ydAZ+ZQ6duyoOnXqqHPnzmrcuLGcnJx07tw5lS9fXvHx8XJyuqvZ7ewqJCREISEh1tH5AQAAAADITjKUtIsWLWpzVt7FxUVdunRRWFiYvLy8tHfvXoWFhenatWsyxsjF5Z6OE9hFUFCQwsLCFBoaau9SAAAAAABIJUNJ+9ixY9a/8+fPr+joaElSjhw59NFHH6l69eqqVauWNm3apAoVKmRupQAAAAAAIONN68ePH69XXnlFbdu21cmTJ3Xy5Enrunr16unq1asaMmSIxo8fn6mFAgAAAACADAT5iIgIdejQQQcPHlSLFi0kSSVKlJC3t7fNaPYJCQlq2rSpXn755cyvFgAAAACAh1y6+8jPmjVLOXPm1O+//67KlStLujEdXWRkpKKioqyXv/76S7t27dL777+fZUUDAAAAAPCwSvcZ+eHDh6da1qpVq1TLihUrpq+//lorV65UXFyc3Nzc7q1CAAAAAABgdU/Dyq9atSrN5dWrV1f16tXvZdcAAAAAACANjjfROwAAAAAADzGCPAAAAAAADoQgDwAAAACAAyHIAwAAAADgQAjyAAAAAAA4EII8AAAAAAAOhCAPAAAAAIADIcgDAAAAAOBACPIAAAAAADgQgjwAAAAAAA6EIA8AAAAAgAMhyAMAAAAA4EAI8gAAAAAAOBCCPAAAAAAADoQgDwAAAACAA3mgg/zUqVMVEBCg8uXL6+eff7Z3OQAAAAAA3DMXexeQVf7++2/Nnz9fhw4d0oEDB9S5c2eFhYXZuywAAAAAAO6JQ5yR37dvn6pUqaIdO3bYLDfGaOzYsSpUqJC8vb3VunVrXbx4UZL09ddf69VXX5WXl5eqV6+uxMREnTp1yh7lAwAAAACQabJ1kN+zZ48CAwNVs2ZN/f7776nWBwcHa8aMGZozZ442bNigQ4cOqVOnTpKk06dPq1ixYtZtixQpovPnz9+32gEAAAAAyArZOsivXLlS7u7uWrNmTap1SUlJCg4O1siRI9WyZUs9/fTTmjZtmr777jsdO3ZMcXFxcnL6v4dnsVjk7Ox8P8sHAAAAACDTZes+8u+++64sFouOHz+eat3+/fsVHh6uZs2aWZfVq1dPTk5O2rVrlwoUKKAzZ85Y1505c0aFCxe+H2UDAAAAAJBlsvUZeYvFcst1R48elSSVKFHCuszT01N58+bV6dOn1axZMy1btkyxsbH65ZdflCtXLuXPn/+W+4uNjVVkZKTNBQAAAACA7CZbn5G/nejoaDk5Ocnd3d1muZeXl2JjY1W9enW98MILKlu2rHx8fLR48eLb7m/ixIkaO3ZsVpYMAAAAAMA9y9Zn5G/H3d1dSUlJSkhIsFkeExMjLy8vSdLo0aN1/Phx7d+/X5UqVbrt/oYPH66IiAjrhRHuAQAAAADZkcOekU/u73769GkVL15c0o3m8RcvXlTJkiUzvD93d/dUZ/cBAAAAAMhuHPaMfJUqVeTp6akNGzZYl23btk0Wi0V169a1Y2UAAAAAAGQdhz0j7+npqV69emnUqFEqWrSocuTIoX79+qlHjx7KlSvXXe83JCREISEhSkxMzMRqAQAAAADIHA4b5CVpwoQJun79ugIDA+Xs7KwOHTooODj4nvYZFBSkoKAgRUZGys/PL5MqBQAAAAAgc1iMMcbeRWRHyUE+IiJCvr6+9i4HAOAAbjNrarZk5GAFS7KMsXcFGWNG8zMLAJB+6c2hDttHHgAAAACAhxFBHgAAAAAAB0KQTyEkJETly5dXtWrV7F0KAAAAAACpEORTCAoKUlhYmEJDQ+1dCgAAAAAAqRDkAQAAAABwIAR5AAAAAAAcCEEeAAAAAAAHQpAHAAAAAMCBEORTYNR6AAAAAEB2RpBPgVHrAQAAAADZGUEeAAAAAAAHQpAHAAAAAMCBEOQBAAAAAHAgBHkAAAAAABwIQT4FRq0HAAAAAGRnBPkUGLUeAAAAAJCdEeQBAAAAAHAgBHkAAAAAABwIQR4AAAAAAAdCkAcAAAAAwIEQ5AEAAAAAcCAEeQAAAAAAHAhBPgXmkQcAAAAAZGcE+RSYRx4AAAAAkJ0R5AEAAAAAcCAEeQAAAAAAHAhBHgAAAAAAB0KQBwAAAADAgRDkAQAAAABwIAR5AAAAAAAcCEEeAAAAAAAHQpAHAAAAAMCBEORTCAkJUfny5VWtWjV7lwIAAAAAQCoE+RSCgoIUFham0NBQe5cCAAAAAEAqBHkAAAAAABwIQR4AAAAAAAdCkAcAAAAAwIEQ5AEAAAAAcCAEeQAAAAAAHAhBHgAAAAAAB0KQBwAAAADAgRDkAQAAAABwIAR5AAAAAAAcCEEeAAAAAAAHQpBPISQkROXLl1e1atXsXQoAAAAAAKkQ5FMICgpSWFiYQkND7V0KAAAAAACpEOQBAAAAAHAgLvYuAPfOYrF3BRljjL0rAAAAAADHxRl5AAAAAAAcCEEeAAAAAAAHQpAHAAAAAMCBEOQBAAAAAHAgBHkAAAAAABwIQR4AAAAAAAdCkAcAAAAAwIEQ5AEAAAAAcCAEeQAAAAAAHAhBHgAAAAAAB0KQBwAAAADAgRDkAQAAAABwIAR5AAAAAAAciIu9C8huQkJCFBISosTERHuX8uCyWOxdQcYZY+8KAAAAAEASZ+RTCQoKUlhYmEJDQ+1dCgAAAAAAqRDkAQAAAABwIDStB9LBMtaxugOY0XQFAAAAAB5UnJEHAAAAAMCBEOQBAAAAAHAgNK0HgLvB7AsAAACwE87IAwAAAADgQAjyAAAAAAA4EII8AAAAAAAOhCAPAAAAAIADIcgDAAAAAOBACPIAAAAAADgQgjwAAAAAAA6EIA8AAAAAgAMhyAMAAAAA4EAI8gAAAAAAOBCCPAAAAAAADoQgDwAAAACAA3GxdwEAAADAXbNY7F1Bxhlj7woAODjOyAMAAAAA4EAI8gAAAAAAOBCCPAAAAAAADuShCPJxcXGaPXu2Xn31VXuXAgAAAADAPXkoBrurVKmSHnnkESUkJNi7FAAAAAAA7km2OyO/b98+ValSRTt27LBZbozR2LFjVahQIXl7e6t169a6ePFiuvb5888/q3///llQLQAAAAAA91e2CfJ79uxRYGCgatasqd9//z3V+uDgYM2YMUNz5szRhg0bdOjQIXXq1Cld+/b398/kagEAAAAAsI9s07R+5cqVcnd315o1a9SwYUObdUlJSQoODtbIkSPVsmVLSdK0adPUrFkzHTt2TCVKlFD79u31zz//2Nxu165d961+AAAAAADuh2wT5N99911ZLBYdP3481br9+/crPDxczZo1sy6rV6+enJyctGvXLpUoUUJLly69j9UCAAAAAGAf2SbIWyyWW647evSoJKlEiRLWZZ6ensqbN69Onz6dKfcfGxur2NhY6/XIyMhM2S8AAAAAAJkp2/SRv53o6Gg5OTnJ3d3dZrmXl5dN+L4XEydOlJ+fn/USEBCQKfsFAAAAACAzOUSQd3d3V1JSUqrp42JiYuTl5ZWufdSvX19r1qy55frhw4crIiLCejl16tQ91QwAAAAAQFbINk3rb6dw4cKSpNOnT6t48eKSbjSFv3jxokqWLJkp9+Hu7p7qjD8AAAAAANmNQ5yRr1Klijw9PbVhwwbrsm3btslisahu3bp2rAwAAAAAgPvLIc7Ie3p6qlevXho1apSKFi2qHDlyqF+/furRo4dy5cqVqfcVEhKikJAQJSYmZup+AQAAANwftxlHO1sycrCCJckYe1fwUHOIIC9JEyZM0PXr1xUYGChnZ2d16NBBwcHBmX4/QUFBCgoKUmRkpPz8/DJ9/wAAAAAA3ItsF+SLFy8uk8bRHXd3d82aNUuzZs2yQ1UAAAAAAGQP2S7IAwAAwH4cr0kyADx8HGKwOwAAAAAAcANBPoWQkBCVL19e1apVs3cpAAAAAACkQpBPISgoSGFhYQoNDbV3KQAAAAAApEKQBwAAAADAgTDYHYBsgcGVAAAAgPThjDwAAAAAAA6EIA8AAAAAgAOhaX0KISEhCgkJUWJior1LAQAAAIBsyTLWsfpFmtEPVsdIzsinwKj1AAAAAIDsjCAPAAAAAIADoWk9AAAAcB/RJBnAveKMPAAAAAAADoQgDwAAAACAAyHIAwAAAADgQAjyKYSEhKh8+fKqVq2avUsBAAAAACAVgnwKTD8HAAAAAMjOCPIAAAAAADgQpp8DgIcE0x0BAAA8GDgjDwAAAACAAyHIAwAAAADgQAjyAAAAAAA4EIJ8Ckw/BwAAAADIzgjyKTD9HAAAAAAgOyPIAwAAAADgQAjyAAAAAAA4EII8AAAAAAAOhCAPAAAAAIADIcgDAAAAAOBACPIAAAAAADgQgjwAAAAAAA6EIA8AAAAAgAMhyKcQEhKi8uXLq1q1avYuBQAAAACAVAjyKQQFBSksLEyhoaH2LgUAAAAAgFQI8gAAAAAAOBCCPAAAAAAADoQgDwAAAACAAyHIAwAAAADgQFzsXUB2ZYyRJEVGRtq5kgePQz6jMfYuIGN432Y9h3yGeR8jBYd8hnkfIwWHfIZ5HyMFh3yGeR9nieQ6k/PorVjMnbZ4SJ0+fVoBAQH2LgMAAAAA8JA5deqUihQpcsv1BPlbSEpK0tmzZ+Xj4yOLxWLvcpAOkZGRCggI0KlTp+Tr62vvcoC7wvsYDwLex3gQ8D7Gg4D3seMxxigqKkqFChWSk9Ote8LTtP4WnJycbnsEBNmXr68v/6jg8Hgf40HA+xgPAt7HeBDwPnYsfn5+d9yGwe4AAAAAAHAgBHkAAAAAABwIQR4PDHd3d40ePVru7u72LgW4a7yP8SDgfYwHAe9jPAh4Hz+4GOwOAAAAAAAHwhl5AAAAAAAcCEEeAAAAAAAHQpAHAAAAAMCBEOQBAAAAAHAgBHkAwH3D+KoAAAD3jiAPAMgyiYmJkqQLFy5IkiwWiz3LAQAAeCAQ5AEAWSIpKUnOzs7atm2bWrZsqQMHDti7JAAAgAcCQR4AkOmSkpLk5OSkn376SQ0aNFDz5s31+OOP27ssAP9fQkKCvUvAPUp+DZOSkuxcCQB7IMgDDiL5Czu5qTKQXSUmJsrJyUm//vqrGjdurA4dOmj06NGS6CMPZAfGGLm4uCgyMlLDhg1TRESEvUtCBiW/hlFRUerTp4/++OMPe5cE2OD3atYjyAMOIDEx0fqFHRgYqCVLlti7JCBNNzenr1u3rlxdXRUdHa1t27ZJutFHnjAP2E9iYqIsFosSEhI0aNAgbd++3d4lIYOSkpKsr+HHH3+sY8eOKSAgwN5lAVaJiYlydnbW1atXNXHiRAUHB+uHH36wd1kPHBd7FwDgzpL/GVarVk3FixeXt7e3EhIS5OTkJCcnjsch+3ByctKuXbvUqFEjTZw4URUqVNDo0aMVHBwsSapXr541zDPwHXD/OTs769q1a5o8ebKuXLmiIUOGyM/Pj8+kA3FyclJsbKyCgoJ05MgRvfLKK8qZM6e9ywIk3Wgt4uzsrOjoaFWrVk0JCQlyd3fX6dOnFRISovbt29u7xAcGQR5wEB9//LHy5Mmj9evXW5dFRETIz8/PjlUBqf3666+aNGmSBg0aJEmKi4vTe++9p6lTp0oizAP2duTIEU2fPl3R0dF68sknJYnPpIM5ePCg/vnnHx06dEj//vuvdTmvIewl+b1nsViUmJiofv36qUyZMvrmm2905swZ1axZU6+99pquXr2q7t2727vcBwKn8gAHkZSUpPj4eB05ckRr167V0KFD9fTTT6t9+/aKioqyd3mA1ZtvvqlBgwZZm9C3bNlSI0aM0MWLFzV16lSa2QP3Wcq+qhUrVtTmzZtVunRpff7559qyZYskPpPZWcrXsFKlSpowYYIqV66sTz75RJ9//rkkXkPcP8nvs+joaEm2772EhAR5e3urVatWkqTg4GAVLlxYgwcPVs+ePekimkk4Iw9kQ8l9i25WtGhRnTx5UrVq1ZKPj4+KFSumTp066Z133lHhwoU1ZcoUO1ULpM1isVhHr2/ZsqUkcWYeuM8SEhLk4uKia9euae3atbp8+bJq1aqlqlWrasWKFXr55Zf1/vvvy9nZWXXr1uUzmQ0lv4YxMTH6/fffdf78edWrV081a9ZUcHCwhg8frqlTp8rFxUUvvfQSryHuC4vFolOnTmnSpEl65ZVXVL9+fev3vpubmzp16qTHH39cGzZs0IkTJ/T555/L1dVVX375pTp27Kj//vtPb775pr0fhkMjyAPZTPIX9tWrV7Vs2TKdOnVKjRs3Vps2bfT444/rwIEDqlevnnx9feXt7a1Dhw7RvB7ZlpOTk/UH5c1h/oMPPlBSUpIaNGjAj00gkyV/5m4e2fzpp59WQkKC3Nzc9Oabb2rkyJEaOXKkli5dqnbt2un999+XMcZ6gA3ZQ/Jgt5GRkXrmmWd0+fJlnT9/Xt7e3urbt6/69eunCRMmaMSIEZo6daoSExMVGBjIa4gslfw/5uzZs1q2bJmuXLkid3d31axZ0zp2U9WqVSVJu3btkpOTkwoXLixjjJ5++mk9/fTTvEczAU3rgWwm+UdXlSpVtGDBAq1cuVIDBgzQ888/r4IFC6pt27YqWLCg4uPj9cMPP+ibb75R6dKl7V02cEs3N7dr2bKl3nnnHZ08eVJjx47VmTNn7Fwd8OD4+OOPJcn6Azn57Nibb76pYsWK6bffftO+ffuUO3du7dixQ5cuXVL16tW1dOlS/f777xo1apTOnj1rz4eAFJydnRUTE6P69esrICBAK1as0KlTp9S5c2d99tlnGjt2rB577DG9/fbbypUrl9555x39888/9i4bD7jk/zGLFi2Sn5+fdu7cqalTp2rXrl3WbRISEpSUlKSTJ08qOjpav//+u77//nsdPXpUw4cPV9++fe1V/gODM/JANjRixAgVLlxYGzdulJOTkx599FFFREQoPj5eknTixAmNGDFCGzZs0Jtvvqk2bdrYuWLg9m5u6tmiRQvFxsYqISFBhQsXtndpwANh8+bN+uKLLxQYGKjcuXNbl1ssFp04cUIvv/yyvL299dJLL8nb21sfffSRcufOratXr6pGjRpaunSpjh49qkKFCtnxUSDZzU3jd+7cqcTERE2YMEFly5aVk5OTpkyZIk9PT4WEhOi1115TjRo1NHToUEVFRalUqVJ2rh4Pg8uXL+vMmTOaOHGiChUqpI4dOyo4OFhDhgzRU089JReXGzGze/fuql+/vp5//nldvHjRevAJ985iGBEDyHZat26tWrVqafDgwQoMDNTvv/+u9evXq1SpUrp8+bJy5sypb7/9VsYYPf/885Jk7YsMZGdp9dukLydwbyZMmCBPT0/17t1b7u7uNuuuXbumTp066fnnn9f69ev166+/Wr9PfvvtN33yySd6//335ePjY70Nn8n7L/k5v3Tpkjw9PeXl5WX9Xp8/f77efPNNXblyRc7OzoqNjbW+zmXLltWLL76oiRMnprk/IKtcv35dn332merUqaNHHnlEW7ZsUZcuXVS1alVrmE928OBBHT58WD4+PmrQoIEk3qOZgV/9gJ0kH0NL61ha4cKFrXPD7tu3T+vWrVOpUqW0Z88eTZgwQVevXlXLli0J8bAbY0yqUZRvXncraX1p80UO3L1ly5bpgw8+UKNGjayfpWvXrmncuHGSJC8vLz3yyCPq1KmTduzYoU2bNlnP2P711186d+6cddTpZHwm77/kbhBDhgzRL7/8oosXL2rw4MG6dOmSKlSoIH9/f+tI3+7u7oqLi1NUVJTy5cuXZvc6XkNkNU9PT3Xs2FGPPPKIEhIS1KBBA82fP1+7d+9WcHCwTTP7Rx99VM8//7w1xCclJfEezQT88gfus+S+axaLRXFxcdb5Nv/77z/rNtWrV9c333yjn3/+WV988YXKlCkjSTp06JB27NiRqg8jIR73Q0hIiFatWiXpxpews7Ozrl27pjlz5mj16tU6ePCgJKY/Au6nhIQEeXp6ysfHR25uboqLi9OXX36p4OBg9ejRQ9KNASY7duyoy5cva+fOnVq/fr0WLlyovn37qlGjRipYsKCdHwWS7d+/X506ddKjjz5qHc+gSJEiKlWqlBYvXqyVK1dKutF3fteuXTpy5AhdlHDfpDyA7+rqKunG79DkAWyTw/y0adP0888/p7kffrdmDprWA/fR1KlTtWLFCk2aNEnPPPOMJOnKlSt64403dOzYMVWrVk0DBgxQuXLl1LdvX61fv17NmzdX/fr1deLECY0ZM0ZjxoxR//797ftA8NA5evSoOnTooMTERI0ePVrNmzdXdHS0qlSposjISF26dEn169dX79691bp1a0k0owfuh02bNmnAgAF65ZVX1KFDB02bNk2vvPKKdu/erRkzZqhRo0aaO3euEhIS1K1bN61du1bx8fHy9fVVz549NXz4cEl8Nu0tuWXd1atX5ePjI19fX82fP1/PPfecXF1dtX//fvXq1Uvh4eHy8fFRkSJFtHnzZg0aNEijRo2yd/l4CNw8leW6det05swZNWvWTAUKFJCvr6/1LLvFYtHWrVvVrl07Pf7441q0aJEKFChg7/IfSAR54D4KDQ1V+/btVaZMGQ0ZMkR169ZVw4YNdfXqVVWoUEFffvmlHnvsMU2ZMkW1a9fWyJEjtXHjRv3+++8qVaqUOnfurKFDh0riRxfuv82bN2v69Om6cOGC3nnnHV27dk1fffWVJk+erN27d2vu3LkKDw/X0KFD9corr0iyfZ/e/HfyQFvt2rWz2+MBHNXnn3+uWrVqqUiRIkpISNDkyZO1fPlyHTt2TE8++aS2bt2q8PBwLVy4UDNmzFDTpk01Z84cSdJvv/0mV1dXWSwWVaxYURLds7KLhIQEzZs3T+vXr9eFCxd06tQphYSEqGHDhvLy8tLx48e1bds2ff/99woICFClSpX06quvSuI1xP0RFRWlGjVqyNvbWxcvXpSPj4/q1Kmjd9991zrIZvJ3/Q8//KAzZ86oS5cudq76wUWQB+6T5C/Zffv2qU2bNipRooRee+01bdq0SRMmTFD+/Pl14sQJPf/888qRI4cmT56s2rVrKykpSX/99Zd8fHwUEBBgsy/gfrg5gG/ZskVTp05VdHS0cubMqaZNm6pnz56SboysPGXKFJ0+fVpvvfWWXn755TT38fHHHysoKEhLliwhyAMZ9N1332nYsGH65Zdf5OHhIUmKjIyUv7+/8uTJo/bt22vUqFHKmTOnNcx/9NFHatKkiT755JNU++OgsH0ln+VMfh3i4uLk5uYmSapdu7ZOnjypWbNmqXHjxnJ3d1dUVJTNwIQSvwlwfxhj1K1bN50+fVqrVq2Sp6enChcurCeeeEKLFi1Snjx5rNtJtuM08H8maxDkgfso+Qt77969atOmjZydnZUvXz5t3brVus2RI0f00ksvKVeuXBo8eLBatGhhsw/+GcIekt+70o0z88l930aMGKFBgwZZt9u1a5emTp2qw4cPa+jQoWrfvr3Ne3bWrFkaMGCAFi1axLSJwF26OcwlJSVpz549GjdunEqVKqUtW7aoUaNGGjZsmPLkyaPw8HAtXrxYwcHBatCggZYuXWrn6pEsMTFRzs7Oio6O1rBhw3Tu3Dm1bNlS9erVU4kSJSTdCPNnzpzRsGHD5O7urn379llnKQDup8TERDVp0kRt27ZVt27d1LZtW+3evVvfffedSpcurfj4eLm6uvI79T7i8B1wnyQHodjYWFWqVElff/21nJyc9Oeff+rbb7+1ble6dGmtXLlS58+f1zvvvKMTJ07Y7Id/jrjfbu4Xd+bMGT3zzDMaPny4KleurFmzZmnt2rXWbZ966ikNHDhQ+fLlk7Ozs6T/e89Onz5dQ4YM0cKFCwnxwF1IPveSHOKvXr2q//3vf6pcubK++eYbffDBB2rcuLE2bNigSZMmKTw8XHny5FGHDh0UFBSkRo0a2bP8h96VK1ck3Tj4YoyxhvgaNWro119/VWxsrPr166f3339ff/zxhyRpx44dKlGihMaMGaNu3brJ19eXEI/7IuW5XmdnZwUEBOjixYvWqZHXrVun0qVLa8eOHRoxYgQh/n4zALJcQkKCMcaYiIgI07hxYzN9+nSTmJho9u/fb8qWLWuaNm1qNm3aZHObQ4cOmaVLl9qjXMAqMTHRGGNMZGSkKV++vOnRo4c5deqUMcaYrVu3mubNm5saNWqYtWvX2tzu3LlzNtf3799vcuTIYRYtWnR/CgceIElJScYYY65evWqzfMGCBcZisZjJkyeb8+fPW5cPHjzYVKxY0QwdOtRcvHjRGGPM9evXU+0P989HH31k6tevb44fP26MufEaJCUlmdGjR5sWLVqYa9euGWOMqVixosmVK5fp1auX+fPPP623//HHH01oaKj1Oq8hslJ8fLwx5sZvgJv/74wfP954enqa4sWL27w/lyxZYurVq2dOnDhx32t9mLnY+0AC8DBInqarZs2aKlSokGrVqqX4+Hg9/vjjWr58udq2baspU6bIyclJ9evXlyQ98sgjeuSRRyTRnB724+TkpNjYWDVq1EglS5ZU9+7dlTdvXklSvXr1lJSUpClTpui9995TUlKSnnvuOUmyjlCb/N4tVqyY9uzZY51KEUD6WSwWJSQkaMqUKercubOKFy+uTz75RN27d9eJEyc0YsQIJSUlqUuXLsqfP7+Cg4Pl7Oysr7/+WlFRUZo2bZrc3d1t9of7KzY2VtHR0Ro0aJDef/99FStWTLGxsUpKSlKzZs3k6empYcOGKWfOnOrWrZsGDx4si8WiHj16qGLFiqpTp451X/SJR1ZKSkqSi4uLoqKi1Lt3b/3777+qXr263nrrLY0YMUJ79+7Vzz//rPXr1+vUqVM6ceKEhg4dqnHjxqlo0aL2Lv/hYu8jCcCDLvmo+YIFC0yNGjVszlTGxcUZY4zZs2ePeeyxx0z9+vXN999/b5c6gVsJDQ01VatWtZ7ZM8aY3bt3m6NHj5rExETz22+/mUaNGplHH33UerYJQObavHmzKVOmjHnppZeMv7+/6datm3Xd6NGjjbOzs5k4caLNmfnevXvTssvOVq1aZf179uzZpnr16uaFF14wx44dM8YYc+rUKRMVFWX2799vWrZsaX7//XdjjDEtW7Y0OXPmNJ07dzaXLl26/4XjoZL8WzW5FV5MTIypUaOGqVixonnuueeMh4eHeeaZZ6zf8Z06dTKPP/64cXd3N6VKlTITJ05MtS9kPc7IA1ng5lFnk898/P3334qIiLCZnsPV1VWSVLlyZa1YsUINGzbUtWvX7FM0cAuenp76448/FBISImdnZ/36669au3atihYtqnbt2um9997T4MGDFRsbq2LFitm7XOCB1KBBA/Xr10/Dhw+Xn5+funbtal03ZswYSdLIkSPl5OSkTp06KX/+/AoJCbFTtZCk3bt368UXX1TPnj01a9Ys9ejRQ0lJSVqwYIEGDBigadOmWQe1+/nnn3Xx4kVVqlRJklSiRAnlzJlT9evXV65cuez4KPAgmzNnjlq1amVtRefk5KS4uDjt3LlT5cuX1/vvv6+cOXMqLCxMtWvX1muvvabFixdrwYIFOnfunM6ePascOXKobNmykmgtcr/xTAOZLCoqSv369VNiYqKuX7+u8ePHS5L8/f3l6uqqK1euKCkpyRrw//33Xy1atEjly5fXgQMH9MILL9ixeiC1IkWKaNCgQZo3b54+//xzVapUSXv27FGTJk20bt06xcfH69lnn9Xzzz8vKfUAOQDuXkJCgvXvr7/+Wrlz51aePHn0wQcfaO/evdZ1Y8aM0ejRozVs2DDNmjVL169ft0O1SHbt2jVVrVpVCxcu1KJFi9S7d29JUq9evdSlSxedPXtWAwcO1PHjxyXd+I2wf/9+ffrpp/riiy+0bt06jRgxQp06dZLE/1Vkvu+++06rVq2Sl5eXpP8bhLFOnTp66aWXdOXKFfn7+0uSypcvr19++UUHDhzQ66+/rv3796tgwYKqWrWqNcQbYwjx95td2wMAD6ATJ06YwoULm8qVK5tChQqZunXrGmOMOXz4sPHw8DD9+/c3sbGx1u2XL19uatSoYf7++2/rMpolIbuJjY21aVpvjDGLFy82DRs2NBcuXOA9C2SB5IFSIyMjzZw5c6zfEwsXLjSVK1c2gYGB1qbYyduOHj3afPjhh3apFzf079/fzJ071xhzowvd4sWLjbu7u+nVq5d1m48//tjazP748ePm6tWrpmPHjsbb29vky5fPjB071l7l4yESHR2datnPP/9scufObYoWLWp2795ts+7w4cPG29vbPPnkk6l+E+D+o2k9kMmKFi2qFStWqHbt2sqTJ48WL14s6ca0cp988om6deumv//+WxUqVJCTk5Nmzpyp4cOH2wwCxkBEyG7c3NyUJ08eSdKRI0e0ZcsWDR48WGPHjrUOfgcg85ibpierWrWqfHx89Mgjj6hMmTLq2LGjkpKSNGPGDE2ZMkV9+vRRUlKS/vnnH2sze9iPu7u7deBPV1dXtW3bVsYYdevWTZI0a9Ys9ezZU5I0f/58DRgwQB9//LEWLlyot956S9evX1fVqlUl0VQZWSP5feXt7S1Jun79uj766CO9+uqrqlmzpn744QfVqVNHY8eO1eTJk1WuXDlJN37L7t69W1u3brX+JoD9WIyhrQ6QGZLn2pak/v3768CBAzp9+rS8vb21bt065c+fX5L0008/aeTIkbp06ZLy58+vF154QUFBQZIYnR7ZX2RkpBYtWqRFixapdevWGj58uCTeu0BWSEpK0htvvKF///1XS5culZ+fn02oW7BggaZPn67z58/rwoULmjFjhvr06WPHih9uaf0fTExMVFJSklxdXbV48WJ169ZNr7/+umbNmiVJmj17thYuXGjtLlG6dGnrbQnxyErJEdBiseijjz7SxIkT1aZNGw0ZMkSFChXSr7/+qvr166tx48aaMmWKtQl9yn3w3W8/BHkgE129elV//fWXAgIClDNnTh06dEiBgYHy8PDQ+vXrlS9fPkk3vtidnZ1t+h/xhQ17SH4v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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 43
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-15T06:26:12.858085Z",
     "start_time": "2024-05-15T06:26:12.835446Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 显示更新后的 DataFrame\n",
    "styled_df_top_5_onestep = df_top_5_onestep.style.apply(highlight_col, subset=[\"Normal时间\", \"Dymola时间\", \"Onestep时间\"], axis=1)\n",
    "styled_df_top_5_onestep = styled_df_top_5_onestep.set_properties(**{'text-align': 'center'})\n",
    "styled_df_top_5_onestep.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])\n",
    "\n",
    "styled_df_top_5_onestep\n"
   ],
   "id": "7971fe04c73b3264",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x21622ea0910>"
      ],
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_4d839 th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_4d839_row0_col0, #T_4d839_row0_col2, #T_4d839_row0_col3, #T_4d839_row1_col0, #T_4d839_row1_col1, #T_4d839_row1_col3, #T_4d839_row2_col0, #T_4d839_row2_col2, #T_4d839_row2_col3, #T_4d839_row3_col0, #T_4d839_row3_col1, #T_4d839_row3_col3, #T_4d839_row4_col0, #T_4d839_row4_col1, #T_4d839_row4_col3 {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_4d839_row0_col1, #T_4d839_row1_col2, #T_4d839_row2_col1, #T_4d839_row3_col2, #T_4d839_row4_col2 {\n",
       "  background-color: yellow;\n",
       "  text-align: center;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_4d839\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_4d839_level0_col0\" class=\"col_heading level0 col0\" >简化模型名称</th>\n",
       "      <th id=\"T_4d839_level0_col1\" class=\"col_heading level0 col1\" >Normal时间</th>\n",
       "      <th id=\"T_4d839_level0_col2\" class=\"col_heading level0 col2\" >Dymola时间</th>\n",
       "      <th id=\"T_4d839_level0_col3\" class=\"col_heading level0 col3\" >Onestep时间</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_4d839_level0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
       "      <td id=\"T_4d839_row0_col0\" class=\"data row0 col0\" >Examples.CoupledClutches</td>\n",
       "      <td id=\"T_4d839_row0_col1\" class=\"data row0 col1\" >0.277000</td>\n",
       "      <td id=\"T_4d839_row0_col2\" class=\"data row0 col2\" >0.200000</td>\n",
       "      <td id=\"T_4d839_row0_col3\" class=\"data row0 col3\" >0.187000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_4d839_level0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
       "      <td id=\"T_4d839_row1_col0\" class=\"data row1 col0\" >ReferenceAir.Inverse_sh_T</td>\n",
       "      <td id=\"T_4d839_row1_col1\" class=\"data row1 col1\" >0.076000</td>\n",
       "      <td id=\"T_4d839_row1_col2\" class=\"data row1 col2\" >0.177000</td>\n",
       "      <td id=\"T_4d839_row1_col3\" class=\"data row1 col3\" >0.055000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_4d839_level0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
       "      <td id=\"T_4d839_row2_col0\" class=\"data row2 col0\" >Hysteresis.ThreePhaseTransformerWithRectifier</td>\n",
       "      <td id=\"T_4d839_row2_col1\" class=\"data row2 col1\" >1048.296000</td>\n",
       "      <td id=\"T_4d839_row2_col2\" class=\"data row2 col2\" >336.542000</td>\n",
       "      <td id=\"T_4d839_row2_col3\" class=\"data row2 col3\" >789.614000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_4d839_level0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
       "      <td id=\"T_4d839_row3_col0\" class=\"data row3 col0\" >Examples.Oscillator</td>\n",
       "      <td id=\"T_4d839_row3_col1\" class=\"data row3 col1\" >0.084000</td>\n",
       "      <td id=\"T_4d839_row3_col2\" class=\"data row3 col2\" >0.128000</td>\n",
       "      <td id=\"T_4d839_row3_col3\" class=\"data row3 col3\" >0.065000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_4d839_level0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
       "      <td id=\"T_4d839_row4_col0\" class=\"data row4 col0\" >Loops.Engine1a</td>\n",
       "      <td id=\"T_4d839_row4_col1\" class=\"data row4 col1\" >0.090000</td>\n",
       "      <td id=\"T_4d839_row4_col2\" class=\"data row4 col2\" >0.091000</td>\n",
       "      <td id=\"T_4d839_row4_col3\" class=\"data row4 col3\" >0.070000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 44
  },
  {
   "metadata": {},
   "cell_type": "code",
   "outputs": [],
   "execution_count": null,
   "source": "",
   "id": "92399a08d544c37f"
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
